
各式各样的代码
北漂的菜小白
写代码是我的爱好,做专栏只为了混口饭吃
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
踩坑笔记 ---- 使用LocalDateTime开通会员到期时间与自动续费业务某天用户突然为0
使用LocalDateTime的同学需要注意下,这东西的plusMonth可能会有点点超出你的认知,这个不能算JDK的bug,没有踩过这个坑的人,可能也想不到这个问题,如果使用这个api,你的程序大概也会这样,希望这个笔记能对你有帮助,在有人找你排查问题的时候,能快速定位并解决问题。原创 2023-05-31 19:32:24 · 1126 阅读 · 0 评论 -
大数据技术(入门篇) --- 使用 Spring Boot 操作 CDH6.2.0 Hadoop
本人是web后端研发,习惯使用spring boot 相关框架,因此技术选型直接使用的是spring boot,目前并未使用 spring-data-hadoop 依赖,因为这个依赖已经在 2019 年终止了,可以点击查看 ,所以我这里使用的是自己找的依赖,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。H原创 2023-04-17 19:06:04 · 3000 阅读 · 3 评论 -
云原生技术 --- docker的常用命令(一)
【代码】云原生技术 --- docker的常用命令(一) docker 本身类 docker 日志类 docker image类 docker 容器类原创 2022-12-21 17:43:03 · 215 阅读 · 0 评论 -
云原生技术--- centos7.6 安装docker
centos 7.6 使用yum 安装dockerDocker 分为 CE 和 EE 两大版本。CE 即社区版,EE要花钱,以下内容均以CE为例子原创 2022-12-21 17:12:43 · 471 阅读 · 1 评论 -
短链接业务解决方案(附源码项目)
1、首先,你要有一个待跳转的长链接地址,这个链接长度随你心情,多长都行,参数也是看你安排,可以携带用户唯一标识,比如,加密后的用户id 2、使用雪花id,生成一个全局唯一的id 3、 使用算法,生成一个唯一的短key,长度短一些就行4、把这几个数据信息,存储到一张表中5、使用短key,和你的短链接跳转域名,拼接成一个短链接6、将这个短链接,发送给用户7、用户点击短链接,产生get请求,后端服务器拿到这个链接的key,去查询数据库,从而获得长链接地址8、 利用重定向技术,实现从短链接向长链接原创 2022-12-21 11:45:55 · 1948 阅读 · 0 评论 -
学习笔记 --- 排序算法笔记(插入排序)
插入排序是使用双层循环将一个数组分成两部分,左边部分为排好序的数组,右边部分为待排序的数据左边数组的第一位,不需要参加外层循环从分界点的索引位置(拆分成两个数组的index),向左侧数组循环,从尾向头循环因为左侧数组是有序的,所以,如果运气好,满足排序条件,直接break即可,倒霉情况下,需要循环到左侧数组头部。原创 2022-12-19 14:40:32 · 151 阅读 · 0 评论 -
代码组件 ---- Spring Boot 项目线程池监控
需要对项目中的线程池指标进行监控检查。原创 2022-09-22 11:28:39 · 993 阅读 · 1 评论 -
Spring webflux 中 WebClient 简单使用记录
webflux中 WebClient简单的使用记录原创 2022-08-30 11:37:57 · 1597 阅读 · 2 评论 -
JAVA使用AES实现对称加密
JAVA使用AES实现对称加密。原创 2022-08-09 10:56:42 · 1102 阅读 · 0 评论 -
JAVA使用RSA实现非对称加密
JAVA使用RSA实现非对称加密。RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。原创 2022-08-01 19:33:43 · 1290 阅读 · 0 评论 -
JAVA使用DES实现对称加密
JAVA使用DES实现对称加密原创 2022-08-01 09:20:10 · 497 阅读 · 0 评论 -
JAVA限流---简单的计数器限流算法
限流算法有很多种,以下例子为最简单的计数器限流示例原创 2022-07-05 14:32:41 · 493 阅读 · 0 评论 -
记录----RabbitMQ踩坑(一)
用户触发某种行为动作,根据行为类型,分别执行延迟30s处理数据动作,和立即处理数据重做两种业务方案一:Redis key监听器,但是考虑实际key数量,放弃该方式方案二:方案RabbitMQ延迟队列实现,程序同时监听两种队列即可,简单方便因为不熟悉RabbitMQ相关配置,导致很多奇奇怪怪的问题,特此记录理由: 如下如下二、同时监听多个队列消费者代码如下生产者篇因生产者和消费者框架不同,配置方式不太一样,生产者为Spring MVC业务触发入口Listener 生产者踩坑详解以上代码上原创 2022-06-23 23:25:09 · 919 阅读 · 2 评论 -
一个基于Spring Boot开发的微信公众号快速开发工具包
微信公众号开发相关组件,还在不断完善中感谢 JetBrains 的对这个项目的认可项目地址:https://github.com/lcy19930619/weixin-spring-boot-starterwiki地址: https://github.com/lcy19930619/weixin-spring-boot-starter/wiki微信文档写的一些东西,感觉比较乱,而且很多东西需要找来找去,百度、csdn等等代码复用性也不高,所以写了这个组件,希望通用性好一些方法一:通过mvn inst原创 2022-06-16 09:56:00 · 1140 阅读 · 6 评论 -
K8S部署zookeeper
k8s 部署zookeeper集群原创 2022-06-14 13:51:28 · 1010 阅读 · 1 评论 -
go ---- 遍历文件目录
go 遍历指定目录,并获取全部路径var allFiles []stringfunc readDirFile(dir string) { files, err := ioutil.ReadDir(dir) if err != nil { log.Fatal(err) } for _, file := range files { if file.IsDir() { readDirFile(dir + "/" + file.Name()) } else { allFil原创 2022-05-10 15:58:49 · 1045 阅读 · 0 评论 -
netty 实现消息群发
主程序启动模版package net.jlxxw.wechat.temp;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.netty.channel.EventLoopGroup;import io.n原创 2022-04-27 09:49:30 · 796 阅读 · 0 评论 -
Java 程序启动脚本
#!/bin/bashAPP_NAME='h5-app'# 等待应用启动的时间APP_START_TIMEOUT=80# 应用端口APP_PORT=8081# 应用健康检查URLHEALTH_CHECK_URL='http://127.0.0.1:'${APP_PORT}/yfbApp/health/check# jar包的名字JAR_NAME='h5App.jar'# 探针JAVA_AGENT=' -javaagent:/usr/local/agent/skywalking-ag原创 2022-04-26 17:04:43 · 2662 阅读 · 0 评论 -
阿里云CDN,使用边缘脚本,http转https
场景某业务需要使用阿里云cdn服务,但个别调用链路,因历史原因使用的是http协议,目前业务需求全部使用https协议踩坑一某http接口使用post协议,在使用阿里云CDN只有,POST请求自动重定向,状态码 301,并且变为GET请求,导致数据丢失踩坑二为了解决坑一,修改nginx配置文件,使用307方式重定向POST,结果无效,分析请求未到达nginx时,就已经被阿里云CDN修改为301重定向,所以nginx配置无效解决方案使用CDN边缘脚本解决步骤配置边缘脚本脚本内容if原创 2022-04-08 14:40:47 · 2589 阅读 · 0 评论 -
nginx 配置文件记录
nginx.conf# 定义Nginx运行的用户user root;# nginx进程数,建议设置为等于CPU总核心数。worker_processes 16;# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /usr/local/nginx/logs/error.log info;# 进程pid文件pid /usr/local/nginx/nginx.pid;# 指定进程可以打开的最大描述符原创 2022-04-07 10:20:19 · 297 阅读 · 0 评论 -
JAVA 监控服务器新增网络连接ip数量
源代码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.time.LocalDateTime;import java.util.*;import java.util.regex.Pattern;import java.util.stream.Collectors;/** * @au原创 2022-04-02 11:44:25 · 7172 阅读 · 0 评论 -
nginx 解决CROS跨域
server { listen 80; server_name xxxxx.xxxxx.com; # if ($request_method = POST) {# # post请求应用307转发,这样不会丢失body# return 307 https://$host$request_uri;# }# # get请求用301、302都可以# return 301 https://$host$request_uri原创 2022-04-01 17:55:14 · 1083 阅读 · 0 评论 -
nginx http转https
http转httpsserver { listen 80; server_name xxxx.xxxx.com; #root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; if ($request_method = POST) {原创 2022-03-30 15:52:58 · 3548 阅读 · 2 评论 -
技术调研--- 使用MyBatis连接 MongoDB,实现group by 等聚合查询
需要使用的组件 MongoDB BI Connector简述MongoDB 使用 BI Connector 来支持 BI 组件直接使用 SQL 或 ODBC 数据源方式直接访问 MongoDB,在早期 MongoDB 直接使用 Postgresql FDW 来实现 SQL 到 MQL 的转换,后来实现更加轻量级的 mongosqld 来支持 BI 工具的连接。下载地址https://www.mongodb.com/try/download/bi-connector目录结构mongodrdl原创 2022-03-17 17:40:50 · 9527 阅读 · 0 评论 -
用JAVA实现一个简单的预热功能
背景某服务调用,因服务器性能问题,无法直接使用最大qps进行调用,需要动态加速逻辑设置最大加速时间,设置允许加速到的最大qps代码import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.atomic.AtomicLong;/** * 预热控制器 * @author chunyang.leng * @date 2022-03-11 6:22 PM */public cla原创 2022-03-11 20:53:48 · 1501 阅读 · 1 评论 -
Spring Cloud OpenFeign增加解码器,支持非标准MIME Content-Type:text/json
场景描述在使用open feign调用某服务时,接口操作报出如下异常2022-03-07 17:53:18.453 [http-nio-9999-exec-1] ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]175] - Servlet.service() for servlet [dispatcherServlet] in context with path [] th原创 2022-03-08 10:24:03 · 2834 阅读 · 1 评论 -
Spring Cloud Gateway 服务器性能异常,以及优化策略
版本说明<spring-boot.version>2.3.2.RELEASE</spring-boot.version><spring-cloud.version>Hoxton.SR8</spring-cloud.version><spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>服务器状态异常部署模式nginx + 3台 cl原创 2022-03-04 20:50:10 · 13963 阅读 · 6 评论 -
使用spring cloud gateway,处理微信公众号模版推送事件
业务场景公众号推送服务,推送用户量级较大,且qps较高解决问题微信公众号的模版推送,在调用推送api接口时,就已经知道是否推送成功,但是微信依然会触发推送回调事件,显著占用线上服务处理能力解决方式在spring cloud gateway中添加过滤器,如果识别为微信回调的推送请求,直接返回空白字符串代码如下maven依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat&l原创 2022-02-21 10:13:51 · 432 阅读 · 0 评论 -
获取外置tomcat端口,适用于spring mvc
/** * 获取tomcat 端口 * * @return tomcat 端口 */ public static int getTomcatPort() { int port = 8080; MBeanServer mBeanServer = null; ArrayList<MBeanServer> mBeanServers = MBeanServerFactory.findMBeanServer(原创 2022-02-21 10:07:55 · 906 阅读 · 0 评论 -
代码示例 ---- spring boot 扫描指定包内接口,自动创建代理类
期望目标提供一个可以扫描指定包的注解该包下,全部为接口类型在spring boot环境中,可以正常注入扫描包内的全部接口扫描包内的接口,使用代理模式实现,且,方法执行时,执行自定义代码段思路解析自定义一个注解该注解需要具备一个数组参数,用于存储扫描包的路径已知包内均为接口类型,也就是说,没有实现类,ioc注入必然报错,需要动态创建代理类代理模式两种方案,jdk需要预先实现相关接口,不太方便,cglib可能会更方便一些,所以使用cglib去实现相关功能该代理实现需要被ioc管理代原创 2022-01-22 18:45:55 · 1288 阅读 · 0 评论 -
代码工具---长链接转换短链接
长链接转短链接的示例代码原创 2022-01-13 14:22:11 · 719 阅读 · 0 评论 -
k8s 中部署skywalking,并使用kafka传输agent数据
核心配置文件 oap-configMapskywalking-oap服务创建文件 OAP-ConfigMap.ymlapiVersion: v1kind: ConfigMapmetadata: name: skywalking-oap-cmdata: # 存储器类型 STORAGE: 'elasticsearch7' # 存储器地址 STORAGE_ES_CLUSTER_NODES: 'elasticsearch-client-service.ns-elasticsearch原创 2021-12-29 15:44:34 · 4666 阅读 · 0 评论 -
k8s使用CSI-NFS驱动
创建驱动管理器创建文件csi-nfs-driverinfo.yaml,内容如下---apiVersion: storage.k8s.io/v1beta1kind: CSIDrivermetadata: name: nfs.csi.k8s.iospec: attachRequired: false volumeLifecycleModes: - Persistent podInfoOnMount: true创建控制器创建文件csi-nfs-controller.yam原创 2021-10-18 17:44:46 · 1415 阅读 · 0 评论 -
spring cloud gateway监听nacos服务上下线,刷新路由,防止404
业务场景使用cloud gateway 作为服务网关,服务上线下线时,gateway可能会产生请求404现象产生原因gateway中有个缓存 CachingRouteLocator ,而网关服务使用的是lb模式,服务在上线或者下线之后,未能及时刷新这个缓存解决方案思路查看源码观察CachingRouteLocator源码,发现其为Spring的ApplicationListener一个子类实现,监听事件为RefreshRoutesEvent,同时在事件处理onApplicationEvent中原创 2021-08-03 13:20:46 · 10663 阅读 · 10 评论 -
Elastic Job开启分片时,业务数据分片逻辑
业务场景:需要分布式定时任务可能有多个分片(生产者)每个分片生产总数据中的一部分数据说明:Elastic Job当前的分片索引最大值 = 分片总数 -1代码示例:public class DemoJob implements SimpleJob { @Override public void execute(ShardingContext shardingContext) { List<User> allData = getAllDataFromDat原创 2021-03-17 20:43:07 · 468 阅读 · 0 评论 -
LRU(JAVA)
import java.util.LinkedHashMap;import java.util.Map;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @author chunyang.leng * @date 2021-03-03 3:40 下午 */public class LRU<K, V> { private LRUMap&.原创 2021-03-03 16:06:35 · 129 阅读 · 2 评论 -
spring boot 结合mybatis动态数据源
@Configurationpublic class MybatisConfig { @Bean public DataSource dataSource1(){ return new DruidDataSource(); } @Bean public SqlSessionFactoryBean sqlSessionFactoryBean1(DataSource dataSource1){ final SqlSessionFacto原创 2021-02-01 12:43:48 · 309 阅读 · 0 评论 -
spring boot 使用Validated
pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId>原创 2021-01-26 09:54:27 · 353 阅读 · 0 评论 -
html转txt(过滤html标签)
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.ArrayList;import java.util.List;import java.util.function.Function;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * html 转 txt * @author chunyang.leng *.原创 2021-01-20 10:22:30 · 372 阅读 · 0 评论 -
shell 后台监控进程是否存在,不存在自动重启
/usr/temp/test/myDemo.jar 换成变量,就可以变成动态监控了启动方式nohup ./脚本名字.sh &#!/bin/bashwhile truedocur_dateTime="`date +%Y-%m-%d,%H:%m:%s`";# wc -l 返回进程格式个数count=`ps -ef |grep /usr/temp/test/myDemo.jar |grep -v "grep" | wc -l`;if [ 0 == $count ];then no原创 2021-01-06 15:39:56 · 367 阅读 · 0 评论