1,现状描述
由于某些原因,导致rocketmq集群中某个master节点不能正常服务,需要为master节点做流量迁移动作,已确保消息不丢失配置策略为:
异步刷盘
主从异步复制
如果直接下线该master,由于主从异步复制,可能导致部分消息来不及复制到slave造成消息丢失。所以该方案不可行。
另一种方案选择:关闭该broker的写入权限,待该broker不再有写入和消费时,再下线该节点。
2表示只写权限,4表示只读权限,6表示读写权限
#bin/mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 4 |
#bin/mqadmin clusterList -n nameserver:prot |
观察InTPS和OutTPS,理想情况都为零时,并不再变化时,则该节点可下线了。
然而,在实际过程中并没有出现为零的情况,InTPS和OutTPS总是有值,有时个位数字有时是两位数字,大部分时间在20多的值。此刻要分析下broker目前的消费状态。
#sh bin/mqadmin brokerConsumeStats -b broker:prot -n nameserver:prot >> brokerConsumeStats.tmp |
查看brokerConsumeStats.tmp,主要查看#LastTime和#Diff。发现%RETRY%重试类队列#Diff有很微小(1或者3)的数据,而其他topic均为0. LastTime时间最新也是发生在%RETRY%队列中。此时可以让该节点下线操作。
#bin/mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 6 |
观察各节点流量是否正常
#bin/mqadmin clusterList -n nameserver:prot |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。