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

126 阅读2分钟

  这是我参与「第四届青训营 」笔记创作活动的的第7天。本篇笔记对于8.4日鲁仕林老师讲授的《从 Kafka 到 Pulsar:数据流演进之路》内容做一个复习总结。


消息队列概述
  • 消息队列的应用场景:
    • MQ 消息通道:异步解耦(下游无需关注上游)、削峰填谷(MQ带缓存)、发布订阅(下游订阅即可消费)、高可用(各模块可用性独立)
    • EventBridge 事件总线:
      • 事件源:将云服务、SaaS应用等产生的事件消息发布到事件集
      • 事件集:存储所接收的事件消息,根据规则将其路由到事件目标
      • 事件目标:消费事件消息。
    • Fata Platform 流数据平台
      • 提供批/流数据处理能力
      • 各类组件连接接口
      • 提供 Streaming/Function 能力
      • 根据数据 schema xxx
  • 主流消息队列的相关介绍:RabbitMQ -> RocketMQ -> Kafka -> Pulsar,随发展单机吞吐量提高,后两者采用分布式架构

Kafka 详解(待补充)
  • xxx
    • Zookeeper
    • Broker
    • controller:(特殊的 Broker)

  • Kafka 高可用
    • 副本同步机制
      • 副本ISR机制:AR( Assign Replica,已分配的所有副本)、OSR、ISR
      • 写入 ACK 机制:ACK = 1()、= 0()、= -1()
      • 问题:3副本情况下
      • ISR 间的副本同步:LEO()、HW
    • 副本切换机制:提供 clean 和 unclean 两种选举。clean 选举优先选取 ISR 中的副本作 leader,无可用则 partition 不可用;unclean 若无可用则选择其他存活副本。两者为一致性和可用性的抉择。

  • Kafka 集群扩缩容
    • Topic 维度需要 partition 在各个 broker 之间分布是均匀的,同一个 partition xxx
    • 扩容步骤:
    • 扩缩容的问题:扩缩容时间长(数据迁移)、扩缩容期间机群不稳定( disk / net / cpu 负载高)、扩缩容期间xxx

  • Kafka 未来方向
    • Kafka 去除 zookeeper 依赖
      • 元数据存取困难
      • 元数据更新网络开销大
      • 强耦合违背软件设计原则
      • 网络分区复杂度高
      • 并发访问 zk 问题多
    • 解决方式-依赖 KRaft:
  • Kafka 单机吞吐:

Pulsar 详解
  • 整体架构:

周边及生态