1. 前言
1.1 github源代码
https://github.com/apache/rocketmq
1.2 github其他客户端,比如c++,php
https://github.com/apache/rocketmq-externals
1.3 运行进程
RocketMQ分成两个进程运行
- Namesrv
- Broker
Namesrv,命名服务,主要负责Broker状态管理,Topic路由信息查询等等,端口是9876
Broker负责消息存储,转发,等等,一般占用3个端口
10911 -- Broker主逻辑端口
10912 -- 持久化端口
10909 -- vip端口
另外,Namesrv可以集群配置,各个Namesrv之间是对等的,彼此不通信,不需要互相通信。
Broker可以以单master, 多master,多master多slave等多种方式运行。
2. 代码结构
2.1 代码模块
2.2 模块简介
- 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工具
转载于:https://blog.51cto.com/483181/2043857