一. 走进消息队列
1.1 使用消息队列可以解决的一些问题案例
案例一:系统崩溃
记录存储部分出现故障,该流程无法进行,
解决方案:解耦
案例二 :服务器处理能力有限
订单请求远远超过了服务器的处理能力
解决方案:削峰
案例三:链路耗时长尾
解决方案:异步
案例四:日志存储在本地发生丢失
1.2 什么是消息队列
1.3 业界消息队列对比
二 Kafka
2.1使用场景
2.2 如何使用Kafka
2.3 基本概念
2.3.1 Offset
2.3.2 Replica
副本分布在不同的机器上来达到服务器容灾的作用
副本中Follwoer要和Leader保持同步,如果差距过大,则该Follower会被踢出Partition.
以前的版本是通过offset的差距来判断的,现版本是通过时间差来判断的.
2.4 数据复制
每一个Broker代表了Kafka集群中的节点,所有节点最终组成了一个集群.
Controller相当于整个集群的大脑,负责对整个集群的副本和broker进行分配
2.5 Kafka架构
2.6 一条消息的自述
思考
处理大量消息时需要耗费的时间十分巨大.