公司项目中因为使用到了Pulsar,因此对这服务了解和总结
项目链接
Pulsar: https://pulsar.apache.org/
目录
- Pulsar
- 业务场景上的使用感受
Pulsar
概览
引用Pulsar官网的一段话
Pulsar is a multi-tenant, high-performance solution for server-to-server messaging. Originally developed by Yahoo, Pulsar is under the stewardship of the Apache Software Foundation.
multi-tenant
意味着多个公司可以同时在云服务商(例如腾讯云)提供一个Pulsar集群中部署,每个租户(公司)可以配置独立的认证方式和集群配置
架构
可以看出依赖的框架:zk
, bookeeper
,
系统的关键组件: broker
zk
是用来存储系统基本配置,如bookie
,broker
集群的信息,是系统的基层组件
bookeeper
是用pulsar的存储系统,存储消息等信息,配置多个bookie
能将broker
投递的消息均匀分布,可以随意的水平扩展
消息投递模型
图片出自:https://pulsar.apache.org/docs/next/concepts-messaging#partitioned-topics
这边引用到了分区的概念,这边在消息订阅模型上和Kafka进行对比
- Kafka中的一个
consumer group
中的consumer
只能订阅一个topic
下的(Range分配,Hash分配)部分partition
, Pulsar的所有consumer
都是允许订阅所有分区或者部分分区。 - Kafka在改变
partition
数以及consumer
数的时候都会进行reblance
,对性能有一定的影响。
业务场景上的使用感受
对组件来说:
- pulsar的功能丰富,支持不同的订阅模式
对个人来说:
- 有个延时发送的API挺好用
- 部署有点麻烦
总结
是个优秀的组件,代码中有股中国味,看得很习惯哈哈