如何优雅地开始研究一个新技术(3)

OK 了,此时我已经有了合理的猜测,producer 和 consumer 都是通过环境变量连接了 9876 这个端口,也就是 namesrv,然后通过这个 namesrv 能找到 broker,那我可以简单画出这样的架构图(这是我猜的,不一定对)。

如何优雅地开始研究一个新技术

嗯,有了这个自己的猜测,我去看了官方文档中的架构部分:

https://github.com/apache/rocketmq/blob/master/docs/cn/architecture.md

上来就是一张图。

如何优雅地开始研究一个新技术

哇塞,大差不差,只是官方文档的图是考虑到了集群情况,其实我反倒觉得开始的图不应该整合太多内容。

紧接着,下面就解释了这四个东西都是啥,我简写下。

Producer:消息发布的角色,选择相应的 Broker 集群队列进行消息投递。

Consumer:消息消费的角色,支持以 push 推,pull 拉两种模式对消息进行消费。

NameServer:一个非常简单的 Topic 路由注册中心,支持 Broker 的动态注册与发现。

BrokerServer:Broker 主要负责消息的存储、投递和查询,包括以下几个子模块:

Remoting Module:整个 Broker 的实体,负责处理来自 clients 端的请求。

Client Manager:负责管理客户端(Producer/Consumer)和维护 Consumer 的 Topic 订阅信息。

Store Service:提供方便简单的 API 接口处理消息存储到物理硬盘和查询功能。

HA Service:高可用服务,提供 Master Broker 和 Slave Broker 之间的数据同步功能。

Index Service:根据特定的 Message key 对投递到 Broker 的消息进行索引服务,以提供消息的快速查询。

嗯,又有了些新概念,BrokerServer 还分成五个子模块,看着有些蒙,先不管。

再往下看,到了部署架构,有了部署步骤。

如何优雅地开始研究一个新技术

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjjds.html