这是我参与「第四届青训营」笔记创作活动的的第12天,以下是我的课堂笔记。 本次课程主要分为四个大板块:
1.消息队列概述
2.Kafka 详解
3. pulsar 详解
4. 周边和生态
1.消息队列概述
1.1.消息队列的应用场景
MQ消息通道
EventBridge 事件总线
Data Platform流数据平台
1.2主流消息队列的相关介绍
2.Kafka 详解
2.1 Kafka架构介绍
2.2 Kafka高可用
可用性定义
Kafka高可用
副本同步机制
- 提供lsr副本复制机制,提供热备功能
- 写入端提供ack=0,-1,1机制,控制副本同步强弱
副本切换机制
- 提供clean/unclean副本选举机制
2.3 Kafka集群扩缩容
Kafka集群扩缩容之后的目标
Topic维度
- partition在各个broker之间分布是均匀的
- 同一个partition的replica不会分布在一台broker
Broker维度
- Broker 之间replica的数量是均匀的
2.4 Kafka集群扩缩容问题
扩缩容时间长
- 涉及到数据迁移,在生产环境中一次扩缩容可能要迁移TB甚至PB的 数据
扩缩容期间集群不稳定
- 保证数据的完整性,往往会从最老的数据进行同步,这样会导致集群 时刻处于从磁盘读取数据的状态,disk/net/cpu负载都会比较高
扩缩容期间无法执行其他操作
- 在一次扩缩容操作结束之前,无法进行其他运维操作(扩缩容)
2.5 Kafka未来演进之路
2.6 Kafka运维/调优经验介绍
3. pulsar 详解
3.1 Pulsar 架构介绍
3.2 Bookeeper
- Ledger: BK的一个基本存储单元,BK Client的读写操作都是以Ledger为粒度的
- Fragment: BK的最小分布单元(实际上也是物理上的最小存储单元),也是 Ledger的组成单位,默认情况下一个Ledger 会对应的一个Fragment(一个Ledger 也可能由多个Fragment组成)
- Entry:每条日志都是一个Entry,它代表一个 record,每条record都会有一个对应的entry id
3.3 Pulsar功能介绍
生产模式
消费模式
. Exclusive
· Failover
· Shared
. Key Shared
3.4 Pulsar HA & Scale-up
. Topic<->Bundle完成映射
. Bundle分配给Broker
3.5 Pulsar vs Kafka
存储架构
- 存储计算分离之后带来的优劣势
- 多层架构,状态分离之后的优势
运维操作
- 应对突发流量变化,集群扩缩容是否便捷
- 运维任务是否影响可用性
- 集群部署是否灵活
功能特性
- 多语言&多协议
- 多租户管理
- 生产消费模式
生态集成