🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Broker Broker主要负责消息的存储、投递和查询以及服务高可用保证,为了实现这些功能,Broker包含了以下几个重要子模块: 1. Remoting Module:整个Broker的实体,负责处理来自clients端的请求; 2. Client Manager:负责管理客户端(Producer/Consumer)和维护Consumer的Topic订阅信息; 3. Store Service:提供方便简单的API接口处理消息存储到物理硬盘和查询功能; 4. HA Service:高可用服务,提供Master Broker 和 Slave Broker之间的数据同步功能; 5. Index Service:根据特定的Message key对投递到Broker的消息进行索引服务,以提供消息的快速查询; ![](https://img.kancloud.cn/79/aa/79aa1981ea06852161bb5a01160d100a_863x504.png) ### Broker部署 Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的Broker Name,不同的Broker Id来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。 每个Broker与Name Server集群中的所有节点建立长连接,定时(每隔30s)注册Topic信息到所有Name Server。Name Server定时(每隔10s)扫描所有存活broker的连接,如果Name Server超过2分钟没有收到心跳,则Name Server断开与Broker的连接