RocketMQ原理解析-Setup
程序员文章站
2022-07-13 15:44:43
...
1. 下载
https://github.com/alibaba/RocketMQ.git
下载后,运行install.sh或install.bat会在target目录下产生alibaba-rocketmq-broker.tar.gz(如果编译过程出现checkstyle不通过,注释掉pom文件的checkstyle plugin),然后解压复制到相应目录。
2. 启动
到MQ的bin/目录:
3. 停止
到MQ的bin/目录:
4. 物理部署
可参考以下部署图,将MQ部署为MM,MS等结构:
5. 物理部署解释
https://github.com/alibaba/RocketMQ.git
下载后,运行install.sh或install.bat会在target目录下产生alibaba-rocketmq-broker.tar.gz(如果编译过程出现checkstyle不通过,注释掉pom文件的checkstyle plugin),然后解压复制到相应目录。
2. 启动
到MQ的bin/目录:
- namesrv:nohup sh mqnamesrv >> /opt/ns.log &
- broker:nohup sh mqbroker -c ../conf/2m-noslave/broker-X.properties >> /opt/mq.log 2>&1 &
3. 停止
到MQ的bin/目录:
- 关闭broker: sh mqshutdown broker 或先执行sh mqadmin wipeWritePerm -b brokerName -n namesrvAddr再sh mqshutdown broker。
- 关闭namesrv: sh mqshutdown namesrv.
4. 物理部署
可参考以下部署图,将MQ部署为MM,MS等结构:
5. 物理部署解释
- namesrv无状态,可集群部署,节点之间无任何信息同步。
- broker分为master和slave。一个master可以对应多个slave,但一个slave只能对应一个master。master和slave的对应关系通过指定相同的brokerName不同的brokerId进行区分。master可以部署多个。每个broker与namesrv集群中的所有节点建立长连接,定时注册topic信息到namesrv。
- slave broker从master broker拷贝消息及订阅关系。
- producer与namesrv集群中的一个节点(随机选择)建立长连接,定期从namesrv获取topic路由信息,并与提供topic服务的master broker建立长连接,也就是说消息只会发送到master broker上,且定时向master broker发送心跳。producer无状态,可集群部署。
- consumer与namesrv集群中的一个节点(随机选择)建立长连接,定期从namesrv获取topic路由信息,并与提供topic服务的master,slave broker建立长连接,且定时向master,slave发送心跳。consumer即可从master订阅消息,也可从slave订阅。