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

108 阅读2分钟

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

架构

Kafka

Kafka架构由broker和zookeeper组成:

image.png

Pulsar

Pulsar的架构如下:

image.png

不同:

  • Pulsar采用分层架构,将计算和存储相分离,存储使用BookKeeper集群,计算使用Broker集群,Broker需要内置BookKeeper客户端。
  • Pulsar的部署和架构更加复杂,但是也更具有伸缩性。
  • Pulsar在最新版本中依然不能脱离Zookeeper独立运行。

Kafka 高可用:

Kafka 高可用

  • 副本同步机制
    • 提供Isr 副本复制机制,提供热备功能
    • 写入端提供ack=0,-1,1机制,控制副本同步强弱
  • 副本切换机制
    • 提供 cleanlunclean 副本选举机制

消息消费模型

Kafka

Kafka的消费模型是采用消费者组的模式,每一个分区只能给消费者组中的一个消费者消费。

Pulsar

  • Exclusive:独占订阅中,在任何时间,一个消费者组(订阅)中有且只有一个消费者来消费Topic中的消息。
  • Failover:使用故障切换订阅,多个消费者(Consumer) 可以附加到同一订阅。但是,个订阅中的所有消费者,只会有一个消费者被选为该订阅的主消费者,其他消费者将被指定为故障转移消费者。
  • Shared:使用共享订阅,在同一个订阅背后, 用户按照应用的需求挂载任意多的消费者。订阅中的所有消息以循环分发形式发送给订阅背后的多个消费者,并且一个消息仅传递给一个消费者。
  • Key_ Shared:使用共享订阅, 在同一个订阅背后,用户按照应用的需求挂载任意多的消费者。订阅中的所有消息以key-hash发送给订阅背后的多个消费者,并且一个消息仅传递给一个消费者。

Pulsar Plugin

  • KOP (Kafka on Pulsar)
  • ROP (RocketMQ on Pulsar)
  • AOP (AMQP on Pulsar)
  • Mop (MQTT on Pulsar)

Pulsar vs Kafka

  • 存储架构

    • 存储计算分离之后带来的优劣势
    • 多层架构,状态分商之后的优势
  • 运维操作

    • 应对突发流量变化, 集群扩缩容是否便捷
    • 运维任务是否影响可用性
    • 集群部看是否灵活
  • 功能特性

    • 多语言&多协议
    • 多租户管理
    • 生产消费模式
  • 生态集成