- 博客(8)
- 资源 (67)
- 问答 (12)
- 收藏
- 关注
原创 线上服务启动卡死,堆栈分析
背景服务启动时候会从mysql加载数据到es中,测试环境正常,线上异常卡住,不动。查看堆栈信息关键点"elasticsearch[_client_][generic][T#5]" #843 daemon prio=5 os_prio=0 tid=0x00007fb3ec007000 nid=0x601b waiting on condition [0x00007fb1b5596000] java.lang.Thread.State: TIMED_WAITING (parking)
2020-06-19 18:12:43 982
原创 Establishing SSL connection without server identity verification is not recommended
报错SpringBoot启动时报错:Wed Jun 17 10:13:14 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if expli
2020-06-17 10:19:24 311
原创 kryo反序列化问题 com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 48
报错2020-06-12 18:33:29.211 ERROR 229109 --- [nioEventLoopGroup-4-33] 76 :失败,com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 48 at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:
2020-06-16 11:04:51 2318
原创 @postconstruct VS @eventListener 以及 dubbo服务暴露(2)
接上一篇继续分析报错截图:源码分析DefaultSingletonBeanRegistry.getSingleton()源码如下,可以看到这个方法需要对singletonObjects加锁调用处源码:在一个bean里面,直接是一个用@postConstruct 注解修饰的初始化方法中,然后开启了另外一个线程去使用redis客户端加载redis数据。只有加载完数据后,这个bean才算初始化完成。通过上面的堆栈可以看出:spring容器在初始化bean的时候,会对singletonObjects
2020-06-07 14:34:07 496
原创 @postconstruct VS @eventListener 以及 dubbo服务暴露(1)
看标题,你可能并太可能知道我想要说什么,但是肯定和这3个关键字有关系。这一切都要从线上一个服务的报错开始:背景线上报错表现:服务启动时候一个定时任务卡住了,进而导致服务起不来。当时这个足足卡了有5分钟多,可见并不是任务执行时间久(平时也就最多30s)分析连忙相办法找运维同学把线上该服务的堆栈信息拿到手,发现有线程blocked,这个线程就是加载定时任务,去redis里面get数据的。如上图可见,是最后获取spring bean的时候死锁了。spring 初始化相关点Application
2020-06-07 12:17:04 465
原创 redis key的删除策略及LRU的实现
Redis过期key是怎么样清理的?(1)惰性清除在访问key时,如果发现key已经过期,那么会将key删除。(2)定时清理Redis配置项hz定义了serverCron任务的执行周期,默认每次清理时间为25ms,每次清理会依次遍历所有DB,从db随机取出20个key,如果过期就删除,如果其中有5个key过期,那么就继续对这个db进行清理,否则开始清理下一个db。(3)内存不够时清理当执行写入命令时,如果发现内存不够,那么就会按照配置的淘汰策略清理内存,淘汰策略一般有6种,Redis4.0版本后
2020-06-04 19:35:09 535
原创 通过取余或者murmur3 hash的简单分流算法
定义样本空间首先定义一个样本空间,比如[0,100],也就是0到100的闭区间[ { "percent":20 "alg":"A" }, { "percent":50 "alg":"B" }, { "percent":70 "alg":"C" }, { "percent":100 "alg":"D" },]则上面分为[0,20],(21,50],(51,70] , (71,100] 这4个样本区间简单通过日期获取对应的样本编号// 取余
2020-06-01 19:49:28 997
生产者消费者问题.ppt
2021-02-14
多生产者多消费者软件课设报告.doc
2021-02-14
同样的sql,用select * 和select id 结果竟然不一样
2019-10-28
【ibatis】sql的返回类型与java接受类型不一致竟然不报错!
2017-10-17
Myeclipse引入项目后JSP文件中报错,棘手。。
2015-10-16
为什么是这个样子呢,兄弟,不信你看。。。
2015-09-29
这个题目怎么做啊,,类似高中但是又是大学算法的题目
2015-09-29
这究竟是怎么回事。。Interger
2015-09-23
eclipse怎么实现点击一个变量,它的所有变量都会显示标记出来
2015-09-12
java如何查询变量的大小,求解
2015-09-12
有点难的字符串的匹配问题
2015-09-12
同一进程的各个线程可以共享哪些内容?
2015-09-07
浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了哪些技术(多选)?
2015-09-07
Mysql中设置表的外键的时候报错
2015-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人