rocketMQ开发集群
初衷
在一个项目中用到了rocketMQ,搭建了集群环境,在此记录方便后续查阅。
官网:http://rocketmq.apache.org/
GitHub:https://github.com/apache/rocketmq
开发rocketMQ
rocketMQ关注四部分producter,consumer,NameServer,broker
producter
生产者,生产者配置文件配置namesrv地址,如果配置集群地址用;
分隔,末尾也要,
例如:namesrv1;namesrv2;
rocketmq:
name-server: namesrv1;namesrv2;
producer:
group: 组名
send-message-timeout: 超时时间(毫秒)
consumer
@RocketMQMessageListener(topic="consumer-topic",consumerGroup="consumer-group"),selectorExpression="tag1",selectorType=""SelectorType.TAG,messageModel=MessageModel.CLUSTERING,consumeMode.CONCURRENTLY)
implements RocketMQListener
配置文件:
rocketmq:
name-server: namesrv1;namesrv2;
producer:
group: 组名
send-message-timeout: 超时时间(毫秒)
NameServer
linux启动NameServer
broker
10.16.13.90 rocketmq-nameserver-1 角色:broker-a-master & broker-b-slave
vim broker-a.properties
#所属集群名字
brokerClusterName=sns-rocket-mq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=rocketmq-nameserver-1
#brokerId 0 表示 Master,>0 表示 Slave
brokerId=0
#Broker对外服务的监听端口
listenPort=10911
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver-1:9876;rocketmq-nameserver-2:9876
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=72
#Broker role有3种:SYNC MASTER、ASYNC MASTER、SLAVE。关键词SYNC和ASYNC表示Master和Slave之间同步消息的机制,SYNC即同步更新,指当Slave和Master消息同步完成后,再返回发送成功的状态。ASYNC即异步更新,master与slave有短暂消息延迟,毫秒级。本文在此使用了异步复制集群模式,线上环境推荐使用同步双写模式,即SYNC_MASTER
brokerRole=ASYNC_MASTER
#刷盘方式 ASYNC_FLUSH 异步刷盘
flushDiskType=ASYNC_FLUSH
#存储路径
storePathRootDir=/data/rocketmq/store/rootdir-a-m
storePathCommitLog=/data/rocketmq/store/commitlog-a-m
#是否允许 Broker 自动创建Topic
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup=true
vim broker-b-s.properties
brokerClusterName=sns-rocket-mq-cluster
brokerName=rocketmq-nameserver-2
listenPort=10921
namesrvAddr=rocketmq-nameserver-1:9876;rocketmq-nameserver-2:9876
brokerId=1
deleteWhen=04
fileReservedTime=72
brokerRole=SLAVE
storePathRootDir=/data/rocketmq/store/rootdir-b-s
storePathCommitLog=/data/rocketmq/store/commitlog-b-s
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH
转载连接
这个是我参考地址,有兴趣看原著,写的很全转载地址