1、 消息队列概述
1.1 消息队列的应用场景
1.1.1 MQ 消息通道
优点:异步解耦、高可用、削峰填谷、消息订阅
1.1.2 EventBridge 事件总线
事件源:将云服务、自定义应用、SaaS 应用等应用程序产生的事件消息发布到事件集
事件集:存储接收到的事件消息,并根据事件规则将事件消息路由到事件目标
事件目标:消费事件消息
1.1.3 Data Platform 流数据平台
- 提供批/流数据处理能力
- 各类组件提供各类 Connect
- 提供 Streaming/Function 能力
- 根据数据 schema 灵活的进行数据预处理
1.2 主流消息队列的相关介绍
2、 Kafka 详解
2.1 Kafka 架构介绍
2.1.1 ZooKeeper
Kafka 存储数据:
- Broker Meta 信息(临时节点)
- Controller 信息(临时节点)
- Topic 信息(持久节点)
- Config 信息(持久节点)
-
选举机制
- Paxos 机制
-
提供一致性
- 写入(强一致性)
- 读取(会话一致性)
-
提供可用性
- 一半以上节点存活即可读写
-
提供功能
- watch 机制
- 持久/临时节点能力
2.1.2 Broker
-
Broker 角色
- 若干个 Broker 节点组成 Kafka 集群
- Broker 作为消息的接收模块,使用 React 网络模型进行消息数据的接收
- Broker 作为消息的持久化模块,进行消息的副本复制以及持久化
- Broker 作为高可用模块,通过副本间的Failover