2,Pulsar 架构
提前说明:这是我自己看的第一个MQ框架,所以,有误之处,请一定指明
1,整体架构
一个 Pulsar 实例,是由一个或多个 Pulsar Cluster 组成的。
(我也不明白,集群 不就是好多机器提供同一种服务嘛,干嘛还有多集群)
2,Cluster
在一个 Pulsar Cluster 中,由三个部分:
- 一个或者多个 Broker
- 一个 BookKeeper 集群
- 一个 ZooKeeper 集群
3,Broker
-
broker 是什么
- Broker 在 Pulsar 中是一个 无状态 的组件,主要负责两个组件的运行:
- 一个提供 管理 和 为 Producer 和 Consumer 提供 主题发现 的 HTTP (REST)服务
- 一个应用于所有数据的自定义 二进制协议 的异步 TCP Server
- Broker 在 Pulsar 中是一个 无状态 的组件,主要负责两个组件的运行:
简单来讲,我的理解,Broker 是给你提供 消息服务 的实体,欢迎指正
-
Broker 什么功能
- Broker 处理 和 负载均衡 来自 Producer(生产者) 的 消息,并把 消息 传递给 Consumer(消费者)
- 协调不同任务
- 把 消息 实例化 到 BookKeeper 中
Broker 依赖 ZooKeeper 来 确定 任务
4,BookKeeper
BookKeeper 大家可能比较陌生,没关系,我也陌生 ( • ̀ω•́ )✧。哎,不过我还是能说一说的
Apache BookKeeper™
A scalable, fault-tolerant, and low-latency storage service optimized for real-time workloads
人家官网已经写了嘛,人家是个 存储服务 。这里不过多深入
在 Pulsar 中,BookKeeper 主要有一个作用:对于 主题消息 的 持久化
5,Zookeeper
在 Pulsar 中,Zookeeper 负责 存储 元数据,像什么,集群配置,协调性
6,持久化数据
Pulsar 为应用提供 可靠数据 的一种技术手段
在 Pulsar 中,消费者 消费完 消息 是要给 Broker 发 确认消息(Acknowledge) 的
消息会一直 被持久化 到 BookKeeper,只到 Consumer(消费者) 发 确认消息
Pulsar 还提供了 非持久化 的消息存储