RocketMQ实战之在线停机和扩容

本文介绍了RocketMQ在线停机和扩容的实战步骤。在线停机时,首先关闭问题节点的写权限,观察流量确保无生产和消费,然后停止Broker并解决问题,最后重启并开启读写权限。在线扩容过程中,复制现有节点的数据到新节点,设置新节点为只读,启动新节点并最终开放读写权限。
摘要由CSDN通过智能技术生成

在线停机

  1. 线上一台RocketMQ节点存在问题(比如:磁盘故障、电池故障、其他硬件故障等)

  2. 使用docker模拟在线停机

    服务 端口 状态
    rocketmq-master1 10911 正常
    rocketmq-master2 10911 不正常
    rocketmq-slave1 10911 正常
    rocketmq-slave2 10911 正常
    rocketmq-nameserver1 9876 正常
    rocketmq-nameserver2 9876 正常

操作步骤

  1. 第一步:关闭不正常Broker的写权限(rocketmq-master2节点)

    • Broker的写权限关闭后,非顺序消息不会立即拒绝,而是等客户端路由信息更新后,才会再向Broker发送消息
    • Broker关闭写权限之后,对应的消费者并不会触发重平衡,这可能导致关联到只读Broker的消费者永远不能消费集群中的消息。所以处理完毕后,需要将写权限放开
    # brokerPermission 2是只写,4是只读、6是读写权限
    # updateBrokerConfig 修改Broker内存,同时也会修改broker.properties配置文件
    $ bin/mqadmin updateBrokerConfig -b rocketmq-master2:10911 -n \
    'rocketmq-nameserver1:9876;Rocketmq-nameserver2:9876' -k brokerPermission -v 4
    update broker config success, rocketmq-master2:10911
    
  2. 第二步:观察节点流量,InTPSOutTPS流量。如果持续一段时间InTPSOutTPS都为0,表示该节点即可下线

    # 关闭前
    $ bin/mqadmin clusterList -n 'rocketmq-nameserver1:9876;Rocketmq-nameserver2:9876'
    #Cluster Name  #Broker Name     #BID  #Addr            #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
    DefaultCluster rocketmq-master1 0     172.19.0.4:10911 V4_3_1   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值