RocketMQ部署(双主双从)

架构模型

https://www.cnblogs.com/kevingrace/p/9015836.html
192.168.25.135 nameserver、brokerserver master1、slave2
192.168.25.138 nameserver、brokerserver slave1、master2
主机名称分别是:rocketmq-nameserver1、rocketmq-nameserver2、rocketmq-master1、rocketmq-slave2、rocketmq-master1、rocketmq-slave2

  • 下面这些端口要加入到防护墙
  • nameserver 默认监听 9876 端口
  • master 默认监听 10911 端口
  • slave 默认监听 11011 端口

环境变量配置

vim /etc/profile.d/rocketmq.sh

ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-4.4.0-bin-release
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH

source /etc/profile.d/rocketmq.sh

RocketMQ 部署

安装RocketMQ

  1. 下载jdk1.8以上版本,下载RocketMQ 4.5版本
  2. 以二进制包方式安装,下载zip文件,之后解压,有bin conf lib三个目录
  3. 启动NameServer: sh bin/mqnamesrv
  4. 查看NameServer启动日志:tail -f ~/logs/rocketmqlogs/namesrv.log 默认是在登录用户家目录中的,可以修改配置文件
  5. 启动Broker: sh bin/mqbroker -n localhost:9876
  6. 查看Broker启动日志:tail -f ~/logs/rocketmqlogs/broker.log
  7. 修改jvm,vim /usr/local/rocketmq/bin/runserver.sh,vim /usr/local/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

关闭服务

  1. 关闭Nameserver: sh bin/mqshutdown namesrv
  2. 关闭Broker: sh bin/mqshutdown broker

测试RocketMQ

  1. 设置临时环境变量
    export NAMESRV_ADDR=localhost:9876
  2. 使用安装包自带的工具发送信息
    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
  3. 在打开一个shell窗口,用于接收信息
    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
    打印窗口中出现send、receive OK的字样,就说明成功

集群部署

  1. 创建消息存储路径:mkdir -p /usr/local/rocketmq/store/{commitlog,consumequeue,index}
  2. broker 配置文件
  3. master 节点的配置:
    vi /usr/local/rocketmq/conf/2m-2s-sync/brocker-a.properties
# 所属集群名字,当然目前只是一个集群
brokerClusterName=rocketmq-cluster
# broker 名字,注意此处不同的配置文件填写的不一样
brokcerName=rocketmq-master1
# 0 表示 Master, 大于0 表示 Slave
brokerId=0
# nameServer地址,分号隔开
namesrvAddr=rocketmq-nameserver1:9876;rokcetmq-nameserver2:9876
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTocpicQueueNums=4
# 是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreatesubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10911
# 删除文件时间点,默认凌晨 4点
deleteWhen=04
# 文件保留时间,默认 48小时
fileReservedTime=120
# commitLog 每个文件的大小,默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue 每个文件默认存30万条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/usr/local/rocketmq/store
# commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
# 消息队列存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
# 消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
# checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
# abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
# 限制消息大小
maxMessageSize=65536
# broker的角色,这里是 Master;ASYNC_MASTER 异步复制Master;SYNC_MASTER 同步复制Master;SLAVE 从节点
brokerRole=SYNC_MASTER
# 刷盘方式,ASYNC_FLUSH 异步刷盘;SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
  1. slave节点的配置,只需要更改brokerName和broker的角色即可
    vi /usr/local/rocketmq/conf/2m-2s-sync/brocker-b.properties
# 所属集群名字,当然目前只是一个集群
brokerClusterName=rocketmq-cluster
# broker 名字,注意此处不同的配置文件填写的不一样
brokcerName=rocketmq-slave1
# 0 表示 Master, 大于0 表示 Slave
brokerId=1
# nameServer地址,分号隔开
namesrvAddr=rocketmq-nameserver1:9876;rokcetmq-nameserver2:9876
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTocpicQueueNums=4
# 是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreatesubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=11011
# 删除文件时间点,默认凌晨 4点
deleteWhen=04
# 文件保留时间,默认 48小时
fileReservedTime=120
# commitLog 每个文件的大小,默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue 每个文件默认存30万条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
storePathRootDir=/usr/local/rocketmq/store
# commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
# 消息队列存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
# 消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
# checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
# abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
# 限制消息大小
maxMessageSize=65536
# broker的角色,这里是 Master
brokerRole=SLAVE
# 刷盘方式,ASYNC_FLUSH 异步刷盘;SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
  1. 另一个服务器同样的配置

启动 RocketMQ

启动NameServer集群:

这里已经将/usr/local/rocketmq/bin加入到了环境变量中,因此直接用命令:

  1. 后台执行:nohup sh mqnamesrv &
  2. 前台执行:sh mqnamesrv

启动Broker集群:

  1. 后台执行:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/brocker-a.properties &
  2. 前台执行:sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/brocker-a.properties
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值