RocketMQ
RocketMQ 概念模型
- Producer:消息生产者,负责产生消息,一般由业务系统负责产生消息
- Consumer:消息消费者,负责消费消息,一般由后台系统负责异步消费
- Push Consumer:Consumer的一种,需要向Consumer对象注册监听
- Pull Consumer:Consumer的一种,需要主动请求Broker拉取消息
- Producer Group:生产者集合,一般用于发送一类消息
- Consumer Group:消费者集合,一般用于接收一类消息进行消费
- Broker:MQ消息服务器(中转消息,用于消息存储与生产消费转发)
- NameServer:管理Broker,接受Broker的register和unregister
理解:类比于生活中的邮件系统,生产者相当于发信人,消费者相当于收信人,Broker相当于负责暂存和传输的邮局。NameServer则是负责协调各个地方邮局的管理机构。启动RocketMQ的顺序是先启动NameServer,再启动Broker,这时消息队列就已经可以提供服务了。
源码结构
在apache rocketmq官网:http://rocketmq.apache.org/docs/quick-start/ 下载源码包后,可以看到结构如下:

其中:
- rocketmq-broker:主要的业务逻辑,消息收发,主从同步
- rocketmq-client:客户端接口,比如生产者和消费者
- rocketmq-example:示例
- rocketmq-common:公共的数据结构等
- rocketmq-distribution: 编译模块,编译输出等
- rocketmq-filter:进行Broker过滤不感兴趣的消息传输,减小带宽压力
- rocketmq-logappender,rocketmq-logging:日志相关
- rocketmq-namesrv: 用于服务协调
- rocketmq-openmessaging:对外提供服务
- rocketmq-remoting:远程调用接口,封装netty底层通信
- rocketmq-srvutil:提供一些公用的工具方法,比如解析命令行参数
- rocketmq-store:消息的存储
参照官网的quickstart进行编译:mvn -Prelease-all -DskipTests clean install -U
,编译后就可以参照官网运行mq的nameserver和broker了。这里要注意的是:由于我的电脑是Mac,在/User/我的名字/目录下,产生了logs和stores两个新的文件夹。
网友评论