RocketMQ由四部分组成
Name Server 可集群部署,节点之间无任何信息同步。提供轻量级的服务发现和路由
Broker(消息中转角色,负责存储消息,转发消息) 部署相对复杂,Broker 分为Master 与Slave,一个Master 可以对应多个Slave,但是一个Slave 只能对应一个Master,Master 与Slave 的对应关系通过指定相同的BrokerName,不同的BrokerId来定 义,BrokerId为0 表示Master,非0 表示Slave。Master 也可以部署多个。
Producer,生产者,拥有相同 Producer Group 的 Producer 组成一个集群, 与Name Server 集群中的其中一个节点(随机选择)建立长连接,定期从Name Server 取Topic 路由信息,并向提供Topic服务的Master 建立长连接,且定时向Master 发送心跳。Producer 完全无状态,可集群部署。
Consumer,消费者,接收消息进行消费的实例,拥有相同 Consumer Group 的 Consumer 组成一个集群,与Name Server 集群中的其中一个节点(随机选择)建立长连接,定期从Name Server 取Topic 路由信息,并向提供Topic 服务的Master、Slave 建立长连接,且定时向Master、Slave 发送心跳。Consumer既可以从Master 订阅消息,也可以从Slave 订阅消息,订阅规则由Broker 配置决定。
要使用rocketmq,至少需要启动两个进程,nameserver、broker,前者是各种topic注册中心,后者是真正的broker。
单机环境RocketMQ的安装(单master)
下载 rocketmq的安装文件: http://rocketmq.apache.org
解压 至本地文件夹 D:\rocketmq
配置mq环境变量
启动 mqname server
进入rocketMQ解压目录下的bin文件夹,启动namesrv服务:start mqnamesrv.cmd
成功启动后如下图
停止服务的时候需要注意,要先停止broker,其次停止nameserver。
默认情况下,nameserver监听的是 9876 端口。
启动broker
启动之前需要先打开bin文件夹下的runbroker.cmd,配置%CLASSPATH%加上双引号,如下图
然后在bin目录下输入启动命令
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
成功如下图
rocketmq插件部署
原插件路径:https://gitee.com/mirrors/RocketMQ-Externals.git
打开Idea编辑器,打开Get From Version Control,从git上输入以上网址下载rocketmq外部项目
下载完成之后,进入‘rocketmq-externals\rocketmq-console\src\main\resources’文件夹,打开‘application.properties’进行配置。
进入‘\rocketmq-externals\rocketmq-console’文件夹,
执行‘mvn clean package -Dmaven.test.skip=true’,编译生成。
(若没有配置mvn环境,需要自行下载安装配置maven)
编译成功之后,Cmd进入‘target’文件夹,
执行‘java -jar rocketmq-console-ng-2.0.0.jar’,
启动‘rocketmq-console-ng-2.0.0.jar’。
浏览器中输入‘127.0.0.1:配置端口’,成功后即可查看。