RocketMQ 部署【Master-Slave 方式】

3.1.

服务器环境

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

序号

 

IP

 

用户名

密码

 

角色

模式

1

 

10.50.2.28

 

root

***

 

 

nameServer1,brokerServer1

Master1

 

 

 

 

 

 

 

 

 

 

 

2

 

10.50.2.10

 

root

***

 

 

nameServer2,brokerServer2

Master2

 

 

 

 

 

 

 

 

 

 

3.2.

Hosts 添加信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IP

 

 

 

 

NAME

 

 

10.50.2.28

 

 

 

 

rocketmq-nameserver1

 

 

 

 

 

 

 

 

 

 

10.50.2.28

 

 

 

 

rocketmq-master1

 

 

 

 

 

 

 

 

 

 

10.50.2.10

 

 

 

 

rocketmq-nameserver2

 

 

 

 

 

 

 

 

 

 

10.50.2.10

 

 

 

 

rocketmq-master1-slave

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# vi /etc/hosts

 

 

3.3. 上传解压【两台机器】

 

 

  • 上传 apache-rocketmq.tar.gz 文件至/usr/local

 

  • tar -zxvf apache-rocketmq.tar.gz -C /usr/local

 

  • ln -s apache-rocketmq rocketmq ll /usr/local

 

 

 

3.4. 创建存储路径【两台机器】

 

 

  • mkdir /usr/local/rocketmq/store

 

  • mkdir /usr/local/rocketmq/store/commitlog

 

  • mkdir /usr/local/rocketmq/store/consumequeue

 

  • mkdir /usr/local/rocketmq/store/index

 

3.5. RocketMQ 配置文件【两台机器】

 

  • vim /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties

 

  • vim /usr/local/rocketmq/conf/2m-2s-async /broker-a-s.properties
  • 同步刷盘:在消息到达MQ后,RocketMQ需要将数据持久化,同步刷盘是指数据到达内存之后,必须刷到commitlog日志之后才算成功,然后返回producer数据已经发送成功。
  • 异步刷盘:,同步刷盘是指数据到达内存之后,返回producer说数据已经发送成功。,然后再写入commitlog日志

 

  • consumequeue:记录数据的位置,以便Consume快速通过consumequeue找到commitlog中的数据

 

 

详细源码分析见https://blog.csdn.net/prestigeding/article/details/78885420

 

#所属集群名字

 

 

 

第 4 页 共 15 页

 

brokerClusterName=rocketmq-cluster

 

#broker 名字,注意此处不同的配置文件填写的不一样 brokerName=broker-a|broker-b

brokerIp1=10.50.2.10

brokerIp2=10.50.2.10

 

 

#0 表示 Master>0 表示 Slave

 

brokerId=0

 

#nameServer 地址,分号分割

 

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

 

#在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数 defaultTopicQueueNums=4

 

#是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true

 

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true

 

#Broker 对外服务的监听端口

 

listenPort=10911

 

#删除文件时间点,默认凌晨 4

 

deleteWhen=04

 

#文件保留时间,默认 48 小时

 

fileReservedTime=120

 

#commitLog 每个文件的大小默认 1G

 

mapedFileSizeCommitLog=1073741824

 

#ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间

 

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

 

#flushCommitLogLeastPages=4

 

#flushConsumeQueueLeastPages=2

 

 

 

第 5 页 共 15 页

 

#flushCommitLogThoroughInterval=10000

 

#flushConsumeQueueThoroughInterval=60000

 

#Broker 的角色

 

#- ASYNC_MASTER 异步复制 Master

 

#- SYNC_MASTER 同步双写 Master

 

#- SLAVE

 

brokerRole=SYNC_MASTER

 

#刷盘方式

 

#- ASYNC_FLUSH 异步刷盘

 

#- SYNC_FLUSH 同步刷盘

 

flushDiskType=ASYNC_FLUSH

 

#checkTransactionMessageEnable=false

 

#发消息线程池数量

 

#sendMessageThreadPoolNums=128

 

#拉消息线程池数量

 

#pullMessageThreadPoolNums=128

 

 

 

3.6. 修改日志配置文件【两台机器】

 

 

  • mkdir -p /usr/local/rocketmq/logs

 

  • cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

 

 

 

3.7. 修改启动脚本参数【两台机器】

 

 

  • vim /usr/local/rocketmq/bin/runbroker.sh

 

#==============================================================================

 

  • 开发环境 JVM Configuration #============================================================================== JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m - XX:MaxPermSize=320m"

 

  • vim /usr/local/rocketmq/bin/runserver.sh

 

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m - XX:MaxPermSize=320m"

 

 

 

 

 

 

3.8. 启动 NameServer【两台机器】

 

  • cd /usr/local/rocketmq/bin

 

  • nohup sh mqnamesrv &

 

 

 

3.9. 启动 BrokerServer A

 

#

cd /usr/local/rocketmq/bin

 

#

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties

>/dev/null 2>&1 &

#

netstat -ntlp

 

#

jps

 

#

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

 

#

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

 

 

 

3.10. 启动 BrokerServer B

 

 

 

 

#

cd /usr/local/rocketmq/bin

 

#

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a-s.properties

>/dev/null 2>&1 &

#

netstat -ntlp

 

#

jps

 

#

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

 

#

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

 

 

你可能感兴趣的:(RocketMQ 部署【Master-Slave 方式】)