技术交流28群

服务热线

135-6963-3175

微信服务号

rocketmq安装 更新时间 2019-5-23 浏览2202次

RocketMq双主双从集群安装搭建

机器列表:

主机角色模式
192.168.1.100namesrv-1,master-a-broker,broker-b-s
主备
192.168.1.101namesrv-2,master-b-broker,broker-a-s主备

在两台机器执行以下操作:

  1. 下载压缩包4.x版本

  2. 解压并进到bin目录下

在两个节点执行启动namesrv

  nohup sh mqnamesrv &

 在两个节点启动双主双从

nohup sh bin/mqbroker -c m2-s2/a.properties &
nohup sh bin/mqbroker -c m2-s2/b-s.properties &
nohup sh bin/mqbroker -c m2-s2/b.properties &
nohup sh bin/mqbroker -c m2-s2/a-s.properties &

注意:namesrvAddr地址也可以在启动broker时候指定,例如:

nohup sh bin/mqbroker -n 192.168.1.100:9876;192.168.1.101:9876 -c 
conf/broker.conf autoCreateTopicEnable=true &

*.properties配置文件如下:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0 #nameServer地址,分号分割
brokerIP1 = 节点ip
namesrvAddr=192.168.1.100:9876;192.168.1.101: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/javawork/rocketmq-all-4.3.0-bin-release/store
#commitLog 存储路径
storePathCommitLog=/usr/javawork/rocketmq-all-4.3.0-bin-release/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/usr/javawork/rocketmq-all-4.3.0-bin-release/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/javawork/rocketmq-all-4.3.0-bin-release/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/javawork/rocketmq-all-4.3.0-bin-release/store/checkpoint
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE 从节点(当是slave从节点时brokerRole=SLAVE)
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘    (slave从节点的刷盘策略可设置异步)
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#abort 文件存储路径
abortFile=/usr/javawork/apache-rocketmq/store/abort
#限制的消息大小 maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000

附ACL权限相关配置

broker配置中增加aclEnable=true

然后acl配置文件conf/plain_acl.yml如下:

globalWhiteRemoteAddresses:
- 192.168.29.100
- 192.168.29.101
- 192.168.29.102
accounts:
- accessKey: rexel_developer
  secretKey: 19@ljWo2iUow
  whiteRemoteAddress:
  admin: false
  defaultTopicPerm: DENY
  defaultGroupPerm: SUB
  topicPerms:
  - rexel_notice=PUB|SUB
  groupPerms:
  - rexel_notice_g1=SUB
  - rexel_notice_p1=PUB
- accessKey: rexel_admin
  secretKey: 98&UIwowu@9o
  whiteRemoteAddress:
  admin: true

字段取值含义
globalWhiteRemoteAddresses*;192.168.*.*;192.168.0.1 全局IP白名单
accessKey字符串Access Key 用户名
secretKey字符串 Secret Key密码
whiteRemoteAddress*;192.168.*.*;192.168.0.1 用户IP白名单
admintrue;false是否管理员账户
defaultTopicPermDENY;PUB;SUB;PUB|SUB默认的Topic权限
defaultGroupPermDENY;PUB;SUB;PUB|SUB默认的ConsumerGroup权限
topicPermstopic=权限各个Topic的权限
groupPerms group=权限各个ConsumerGroup的权限

权限标识符的含义

权限含义
DENY拒绝
ANYPUB 或者 SUB 权限
PUB发送权限
SUB订阅权限