RocketMQ学习笔记

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学习笔记_第1张图片
源码结构

其中:

  • 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两个新的文件夹。

你可能感兴趣的:(RocketMQ学习笔记)