这是我参与「第四届青训营 」笔记创作活动的第11天
架构
Kafka
Kafka架构由broker和zookeeper组成:
Pulsar
Pulsar的架构如下:
不同:
- 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
-
存储架构
- 存储计算分离之后带来的优劣势
- 多层架构,状态分商之后的优势
-
运维操作
- 应对突发流量变化, 集群扩缩容是否便捷
- 运维任务是否影响可用性
- 集群部看是否灵活
-
功能特性
- 多语言&多协议
- 多租户管理
- 生产消费模式
-
生态集成