RocketMQ集群

1、编译RocketMQ

安装git:yum install git

下载RocketMQ:git clone -b develop https://github.com/apache/incubator-rocketmq.git

安装maven:yum install maven

编译RocketMQ:

cd incubator-rocketmq

mvn -Prelease-all -DskipTests clean install -U

cd distribution/target/apache-rocketmq

2、启动Name Server

在两台机器上分别执行:

nohup sh bin/mqnamesrv &

查看日志:tail -f ~/logs/rocketmqlogs/namesrv.log

The Name Server boot success.

3、启动Broker

conf目录下可以看到RocketMQ有多种集群部署方式:

2m-noslave: 多Master模式

2m-2s-sync: 多Master多Slave模式,同步双写

2m-2s-async:多Master多Slave模式,异步复制

多Master模式:一个集群无 Slave,全是 Master

优点:配置简单,单个Master 宕机或重启维护对应用无影响,在磁盘配置为 RAID10 时,即使机器宕机不可恢复情况下,由于RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。性能最高。

缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。

修改配置:

vi conf/2m-noslave/broker-a.properties

brokerClusterName=ClusterOne
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=10.10.44.26:9876;10.10.44.73:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

另一台机器上的配置与此类似,将brokerName改为broker-b即可。

在两台机器上分别启动broker:

nohup sh bin/mqbroker -c conf/2m-noslave/broker-a.properties &

nohup sh bin/mqbroker -c conf/2m-noslave/broker-b.properties &

查看日志:tail -f ~/logs/rocketmqlogs/broker.log 

The broker[broker-b, 10.10.44.73:10911] boot success. serializeType=JSON and name server is 10.10.44.26:9876;10.10.44.73:9876

多Master多Slave模式,同步双写:每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用同步双写方式,主备都写成功,向应用才返回成功。

优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高。

缺点:性能比异步复制模式略低,大约低10%左右,发送单个消息的 RT 会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。

修改26上broker配置:

vi conf/2m-2s-sync/broker-a.properties

brokerClusterName=ClusterTwo
brokerName=broker-a
brokerId=0
namesrvAddr=10.10.44.26:9876;10.10.44.73:9876
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

broker-a.properties的配置与此类似,brokerName为broker-b

修改73上的broker配置:

vi conf/2m-2s-sync/broker-a-s.properties

brokerClusterName=ClusterTwo
brokerName=broker-a
brokerId=1
namesrvAddr=10.10.44.26:9876;10.10.44.73:9876
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

broker-b-s.properties的配置与此类似,brokerName为broker-b

分别启动两个master:

nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &

nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &

分别启动两个slave:

nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &

nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &

多Master多Slave模式,异步复制:每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级。

优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为 Master 宕机后,消费者仍然可以从 Slave 消费,此过程对应用透明。不需要人工干预。性能同多 Master 模式几乎一样。

缺点:Master宕机,磁盘损坏情况,会丢失少量消息。

该模式与同步模式配置类似,唯一区别在于brokerRole=ASYNC_MASTER,启动方式一样,此处不再赘述。

4、常用命令

关闭Name Server:sh bin/mqshutdown namesrv 

关闭broker:sh bin/mqshutdown broker

查看集群状态:sh bin/mqadmin clusterList -n 10.10.44.26:9876

查看broker状态:sh bin/mqadmin brokerStatus -b 10.10.44.26:10911

查看所有消费组group:sh bin/mqadmin consumerProgress -n 10.10.44.26:9876

查看所有topic:sh bin/mqadmin topicList -n 10.10.44.26:9876

查看指定消费组下的所有topic数据堆积情况:

sh bin/mqadmin consumerProgress -n10.10.44.26:9876 -g myGroupConsumer

新增topic:sh bin/mqadmin updateTopic –n10.44.26:9876 –c DefaultCluster –t myTopic

删除topic:sh bin/mqadmin deleteTopic –n10.44.26:9876 –c DefaultCluster –tmyTopic

帮助命令:sh bin/mqadmin help clusterList

5、安装可视化管控台

将rocketmq-console放在tomcat/webapps目录下,解压,修改rocketmq-console/WEB-INF/classes/config.properties文件,启动tomcat,访问http://localhost:8080/rocketmq-console


rocketmq-console下载地址:点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值