天天看点

44. 源代码解读-RocketMQ-架构

<a href="https://github.com/apache/rocketmq">https://github.com/apache/rocketmq</a>

<a href="https://github.com/apache/rocketmq-externals">https://github.com/apache/rocketmq-externals</a>

RocketMQ分成两个进程运行

Namesrv

Broker

Namesrv,命名服务,主要负责Broker状态管理,Topic路由信息查询等等,端口是9876

Broker负责消息存储,转发,等等,一般占用3个端口

10911 -- Broker主逻辑端口

10912 -- 持久化端口

10909 -- vip端口

另外,Namesrv可以集群配置,各个Namesrv之间是对等的,彼此不通信,不需要互相通信。

Broker可以以单master, 多master,多master多slave等多种方式运行。

44. 源代码解读-RocketMQ-架构

rocketmq-broker 主要的业务逻辑,消息收发,主从同步, pagecache等等

rocketmq-client 客户端接口,比如生产者和消费者。pull和push消费模式,消息负载均衡等等。

rocketmq-common 公用数据结构等等

rocketmq-distribution 编译模块,编译输出等

rocketmq-example 示例,比如生产者和消费者

rocketmq-fliter

rocketmq-flitersrv

rocketmq-logappender 日志相关

rocketmq-namesrv Namesrv服务

rocketmq-openmessaging

rocketmq-remoting 远程调用接口,封装Netty,主要是NettyRemotingServer和NettyRemotingClient

rocketmq-srvutil server util,提供一些公用的工具方法,比如解析命令行参数

rocketmq-store 消息存储

rocketmq-test 测试

rocketmq-tools 管理工具,比如有名的mqadmin工具

     本文转自rongwei84n 51CTO博客,原文链接:http://blog.51cto.com/483181/2043857,如需转载请自行联系原作者