摘要:
现象 最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。 首先查看机器上的日志,有调用第三方接口超时,查询数据库超时。立马查看第三方接口监控和数据库监控,一切正常。可能由于 GC 停顿造成统计的超时,这个时候我们通过 jstat -gcutil pid 查看 阅读全文
摘要:
1. 问题背景 某核心JAVA长连接服务使用mongodb作为主要存储,客户端数百台机器连接同一mongodb集群,短期内出现多次性能抖动问题,此外,还出现一次“雪崩”故障,同时流量瞬间跌零,无法自动恢复。本文分析这两次故障的根本原因,包括客户端配置使用不合理、mongodb内核链接认证不合理、代理 阅读全文
摘要:
前言 一线大厂ZooKeeper的十二连问,你顶得了嘛? 本文已经收录到github github.com/whx123/Java… 1. 面试官:工作中使用过Zookeeper嘛?你知道它是什么,有什么用途呢? 小菜鸡的我: 有使用过的,使用ZooKeeper作为dubbo的注册中心,使用ZooK 阅读全文
摘要:
怎么才算掌握了JDK中的线程池 JDK并发包下面的线程池是面试中经常被考查的点,之前我写过一篇ThreadPoolExecutor源码分析的文章。因为篇幅有限当时没说面试中常见的考查点和哪些点是应该掌握。那篇文章着实有点长,更合适用电脑看,结合源码看。今天,我来谈谈自己觉得ThreadPoolExe 阅读全文
摘要:
一、前期配置 1. 加入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> 阅读全文
摘要:
一、实现配置多个 HttpSecurity 前期的配置和学习基本和本系列的文章都一样, @Configuration public class MultiHttpSecurityConfig { @Bean PasswordEncoder passwordEncoder() { return new 阅读全文
摘要:
在最近的一次百万长连接压测中,32C 128G 的四台 Nginx 频繁出现 OOM,出现问题时的内存监控如下所示。 排查的过程记录如下。 现象描述 这是一个 websocket 百万长连接收发消息的压测环境,客户端 jmeter 用了上百台机器,经过四台 Nginx 到后端服务,简化后的部署结构如 阅读全文
摘要:
几年前的一个下午,公司里码农们正在安静地敲着代码,突然很多人的手机同时“哔哔”地响了起来。本来以为发工资了,都挺高兴!打开一看,原来是告警短信 故障回顾 告警提示“线程数过多,超出阈值”,“CPU空闲率太低”。打开监控系统一看,订单服务所有20个服务节点都不行了,服务没响应。 每个springboo 阅读全文
摘要:
JAVA程序最爽的地方是它的GC机制,开发人员不需要关注内存申请和回收问题。同时,JAVA程序最头疼的地方也是它的GC机制,因为掌握JVM和GC调优是一件非常困难的事情。在ParallelOldGC、CMS、G1之后,JDK11带来的全新的「ZGC」为我们解决了什么问题?Oracle官方介绍它是一个 阅读全文
摘要:
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。 我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千Q 阅读全文