服务热线
135-6963-3175
RocketMq双主双从集群安装搭建
机器列表:
主机 | 角色 | 模式 |
192.168.1.100 | namesrv-1,master-a-broker,broker-b-s | 主备 |
192.168.1.101 | namesrv-2,master-b-broker,broker-a-s | 主备 |
在两台机器执行以下操作:
下载压缩包4.x版本
解压并进到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白名单 |
admin | true;false | 是否管理员账户 |
defaultTopicPerm | DENY;PUB;SUB;PUB|SUB | 默认的Topic权限 |
defaultGroupPerm | DENY;PUB;SUB;PUB|SUB | 默认的ConsumerGroup权限 |
topicPerms | topic=权限 | 各个Topic的权限 |
groupPerms | group=权限 | 各个ConsumerGroup的权限 |
权限标识符的含义
权限 | 含义 |
DENY | 拒绝 |
ANY | PUB 或者 SUB 权限 |
PUB | 发送权限 |
SUB | 订阅权限 |