从 Kafka 到 Pulsar:数据流演进之路(上)|青训营笔记

97 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第15天!

前言

消息队列概述

消息队列在各个领域扮演的角色

消息队列的应用场景

MQ消息通道

image.png

EventBridge事件总线

事件源:将云服务、自定义应用、SaaS应用等应用程序产生的事件消息发布到事件集

事件集:存储接收到的事件消息,并根据事件规则将事件消息路由到事件目标

事件目标:消息事件消息

Data Platform 流数据平台

  1. 提供批/流数据处理能力
  2. 各类组件提供各类Connect
  3. 提供Streaming/Function能力
  4. 根据数据schema灵活的进行数据预处理

主流消息队列的相关介绍

Kafka详解

Kafka架构介绍

Zookeeper

Kafka数据:

  1. Broker Meta信息(临时节点)

  2. Controller信息(临时节点)

  3. Topic信息(持久节点)

  4. Config信息(持久节点)

  5. 选举机制:Paxos机制

  6. 提供一致性:写入(强一致性) 读取(会话一致性)

  7. 提供可用性:一半以上节点存活即可读写

  8. 提供功能:watch机制 持久/临时节点能力

Broker

Broker角色

  1. 若干个Broker节点组成Kafka集群
  2. Broker作为消息的接收模块,使用React网络模型进行消息数据的接收
  3. Broker作为消息的持久化模块,进行消息的副本复制以及持久化
  4. Broker作为高可用模块,通过副本间的Failover进行高可用保证

Controller选举

  1. Broker启动会尝试去zk中注册Controller节点
  2. 注册上的Controller节点的broker即为Controller
  3. 其余broker会watch Controller节点,节点出现异常则进行重新注册

Controlle作用

  1. Broker重启/宕机时,负责副本的Failover切换
  2. Topic创建/删除时,负责Topic meta信息广播
  3. 集群扩缩容时,进行状态控制
  4. partition/Replica状态机维护