前言
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。
我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千QPS,过去也遇到了很多次GC相关的线上问题。
这篇文章,我再分享一个更棘手的Young GC耗时过长的线上案例,同时会整理下YGC相关的知识点,希望让你有所收获。内容分成以下2个部分:
- 从一次YGC耗时过长的案例说起
- YGC的相关知识点总结
Kafka源码篇——Kafka快速入门
1.1Kafka简介
1.2以Kafka为中心的解决方案
1.3 Kafka核心概念
1.4搭建Kafka源码环境
Kafka源码篇——生产者
2.1 KafkaProducer使用示例
2.2 KafkaProducer分析
2.3 RecordAccumulator分析
2.4 Sender分析
Kafka源码篇——消费者
3.1 KafkaConsumer使用示例
3.2传递保证语义(Delivery guarantee semantic )
3.3 Consumer Group Rebalance设计
3.4 KafkaConsumer 分析
Kafka源码篇——Kafka服务端
4.1网络层
4.2API层
4.3日志存储
4.4 DelayedOperationPurgatory组件
4.5副本机制
4.6 KafkaController
4.7 GroupCoordinator
4.8身份认证与权限控制
4.9Kafka监控
Kafka源码篇——Kafka Tool
5.1 kafka-server-start脚本
5.2kafka-topics脚本
5.3 kafka-preferred-replica-election脚本
5.4 kafka-reassign-partitions脚本
5.5 kafka-console-producer 脚本
5.6 kafka-console-consumer 脚本
5.7 kafka-consumer-groups脚本
5.8 DumpLogSegments
5.9 kafka-producer-perf-test 脚本
5.10 kafka-consumer-perf-test脚本
5.11 kafka-mirror-maker脚本
Kafka的设计与实现
讨论一:Kafka 存储在文件系统上
讨论二:Kafka 中的底层存储设计
讨论三:生产者设计概要
讨论四:消费者设计概要
讨论五:Kafka 如何保证可靠性
最后
由于篇幅限制,小编在此截出几张知识讲解的图解,有需要的程序猿(媛)可以点赞后戳这里免费领取全部资料获取哦
844181)]
[外链图片转存中…(img-0t4JTe6i-1621845844182)]
[外链图片转存中…(img-fKyBve8f-1621845844183)]
[外链图片转存中…(img-VIISoKVA-1621845844184)]
[外链图片转存中…(img-0hWUCxl8-1621845844185)]