这是我参与「第四届青训营」笔记创作活动的的第15天!
前言
消息队列概述
消息队列在各个领域扮演的角色
消息队列的应用场景
MQ消息通道
EventBridge事件总线
事件源:将云服务、自定义应用、SaaS应用等应用程序产生的事件消息发布到事件集
事件集:存储接收到的事件消息,并根据事件规则将事件消息路由到事件目标
事件目标:消息事件消息
Data Platform 流数据平台
- 提供批/流数据处理能力
- 各类组件提供各类Connect
- 提供Streaming/Function能力
- 根据数据schema灵活的进行数据预处理
主流消息队列的相关介绍
Kafka详解
Kafka架构介绍
Zookeeper
Kafka数据:
-
Broker Meta信息(临时节点)
-
Controller信息(临时节点)
-
Topic信息(持久节点)
-
Config信息(持久节点)
-
选举机制:Paxos机制
-
提供一致性:写入(强一致性) 读取(会话一致性)
-
提供可用性:一半以上节点存活即可读写
-
提供功能:watch机制 持久/临时节点能力
Broker
Broker角色
- 若干个Broker节点组成Kafka集群
- Broker作为消息的接收模块,使用React网络模型进行消息数据的接收
- Broker作为消息的持久化模块,进行消息的副本复制以及持久化
- Broker作为高可用模块,通过副本间的Failover进行高可用保证
Controller选举
- Broker启动会尝试去zk中注册Controller节点
- 注册上的Controller节点的broker即为Controller
- 其余broker会watch Controller节点,节点出现异常则进行重新注册
Controlle作用
- Broker重启/宕机时,负责副本的Failover切换
- Topic创建/删除时,负责Topic meta信息广播
- 集群扩缩容时,进行状态控制
- partition/Replica状态机维护