背景
在我们要平滑升级broker的时候,无损升级的最佳实践应该是
- 新broker启动
- 旧broker停写
- 旧broker消息消费完成后下线(包括延时消息)
所以我们本次就是来分析如何完成broker的停写
源码入口
其实通过查看源码,我们发现有两种方式可以停写broker
- 通过mqadmin运维工具命令行的方式
2.通过MQAdminExt管理工具类
两种方式没有区别,都是调用DefaultMQAdminExt的wipeWritePermOfBroker方法
源码分析
client
我们这里直接进去到最底层的实现类代码
java复制代码public int wipeWritePermOfBroker(final String namesrvAddr, String brokerName,
final long timeoutMillis) throws RemotingCommandException,
RemotingConnectException, RemotingSendRequestException, RemotingTimeoutException, InterruptedException, MQClientException {
WipeWritePermOfBrokerRequestHeader requestHeader = new WipeWritePermOfBr