RocketMq-01-整体部署与快速实战

一、简介
Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可伸缩性。 它由四个部分组成:nameserver,broker,生产者和使用者。 它们中的每一个都可以水平扩展,而没有单个故障点。 如上面的屏幕截图所示。nameserver:提供轻量级的服务发现和路由。 每个名称服务器记录完整的路由信息,提供相应的读写服务,并支持快速的存储扩展。Broker:通过提供轻量级的TOPIC和QUEUE机制来存储消息。
 
二、集群部署与配置
参考链接(官网Quick Start): http://rocketmq.apache.org/docs/quick-start/ 环境
JDK版本:1.8.0_221
rocketmq版本:
roq­all­4.3.2­incubating­bin­release.zip
运行环境
JDK版本:1.8.0_221
rocketmq版本:rocketmq­all­4.3.2­
系统:centos 7
 
1.配置环境变量
vim /etc/profile    插入JDK和RocketMq环境变量
 
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
 
#rocketmq
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq‐all‐4.1.0‐incubating
export PATH=$ROCKETMQ_HOME/bin:$PATH
 
刷新环境变量: source /etc/profile
 
2.修改broker配置
配置文件地址:/usr/local/rocketmq/conf/broker.conf
 
#集群名称,可自定义  
brokerClusterName=DefaultCluster
brokerName=broker‐a
brokerId=0 
brokerIP1=192.168.241.198
 
//定义服务地址,主存地址
namesrvAddr=192.168.241.198:9876
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER 
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true 
 
#消息存储根路径
storePathRootDir=/data/rocketmq/store 
#日志路径 
storePathCommitLog=/data/rocketmq/store/commitlog
 
3.启动脚本配置修改(可选)
机器内存不够(一般针对虚拟机),修改/usr/local/rocketmq/bin/runserver.sh 与  /usr/local/rocketmq/bin/runbroker.sh中JAVA_OPT关于内存的设置
 
#修改此处的内存大小,默认为4g,一般我们的虚拟机内存不会太大 
#所以此处修改为256m,可以根据自己机器的配置合理设置
JAVA_OPT="${JAVA_OPT} ‐server ‐Xms256m ‐Xmx256m ‐Xmn128m ‐XX:MetaspaceSi ze=64m ‐XX:MaxMetaspaceSize=128m"
 
4.启动namesrv
nohup sh bin/mqnamesrv ‐n 192.168.241.198:9876 &
 
5.启动broker
nohup sh bin/mqbroker ‐n 192.168.241.198:9876 autoCreateTopicEnable=true & 
 
指定配置文件启动
nohup sh bin/mqbroker ‐n 192.168.241.198:9876 ‐c conf/broker.conf autoCre ateTopicEnable=true & 
 
6.rocketmq多机集群部署
准备2个虚拟机分别是虚拟机centos-node-01与centos-node-02,分别部署2个NameServer,并在每台机器上分别启动一个Master和一个Slave,互为主备,在主目录下的conf文件夹下提供了多种broker配置模式,分别有:2m-2s-async,2m-2s-sync,2m-noslave,可以以此为模版做如下配置:
 
2m-2s-sync同步为例
1. 配置192.168.241.198 Master和Slave
Master broker-m.conf配置如下:
 
namesrvAddr =192.168.241.198:9876;192.168.241.199:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true                    
listenPort=10811                                     
storePathRootDir=/root/rocketmq/store‐m    
 
Slave broker-s.conf配置如下
 
namesrvAddr =192.168.241.198:9876;192.168.241.199:9876    //namesrv地址 不配置默认localhost:9876
brokerClusterName=DefaultCluster        //集群名称
brokerName=broker-a                            //broker名称 
brokerId=1                                               // 0是master,非0是slave
deleteWhen=04                                       // 凌晨4点删除消息
fileReservedTime=48                               //消息保存48小时
brokerRole=SLAVE                                   //broker角色
flushDiskType=ASYNC_FLUSH                 //消息持久化方式 同步刷盘/异步刷盘
autoCreateTopicEnable=true                    //发送消息时如果Topic不存在,则自动创建
listenPort=10911                                     //broker通信端口
storePathRootDir=/root/rocketmq/store‐s    // 消息持久化根目录
 
2. 配置192.168.241.199 Master和Slave
Master broker-m.conf配置如下:
 
namesrvAddr =192.168.241.198:9876;192.168.241.199:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true                    
listenPort=10811                                     
storePathRootDir=/root/rocketmq/store‐m    
 
Slave broker-s.conf配置如下
 
namesrvAddr =192.168.241.198:9876;192.168.241.199:9876    //namesrv地址 不配置默认localhost:9876
brokerClusterName=DefaultCluster        //集群名称
brokerName=broker-b                            //broker名称 
brokerId=1                                               // 0是master,非0是slave
deleteWhen=04                                       // 凌晨4点删除消息
fileReservedTime=48                               //消息保存48小时
brokerRole=SLAVE                                   //broker角色
flushDiskType=ASYNC_FLUSH                 //消息持久化方式 同步刷盘/异步刷盘
autoCreateTopicEnable=true                    //发送消息时如果Topic不存在,则自动创建
listenPort=10911                                     //broker通信端口
storePathRootDir=/root/rocketmq/store‐s    // 消息持久化根目录
 
启动mqnamesrv
nohup sh mqnamesrv &
 
启动master
nohup sh bin/mqbroker ‐c conf/broker‐m.conf &
 
启动slave
nohup sh bin/mqbroker ‐c conf/broker‐s.conf &
 
集群启动后查看集群监控状态
sh mqadmin clusterlist ‐n 192.168.241.198:9876
 
测试
测试发送端> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
测试消费端> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 
7.控制台搭建
1.github下载地址: https://github.com/apache/rocketmq-externals  选择分支:release-rocketmq-console-1.0.0
2.编辑application.properties配置文件,修改启动端口和对应的rocketMQ的namesrv地址
3.进入项目目录下打包:maven clean package -Dmaven.test.skip=true
4.上传jar包到对应服务器上并启动 :java -jar rocketmq-console-1.0.0.jar
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值