RocketMQ几个具有里程杯意义的版本:
- RocketMQ4.3.0正式引入了事务消息,如果大家希望使用事务消息,其版本最低建议为 4.6.1。
- RocketMQ4.4.0引入了ACL、消息轨迹,如果需要使用这些功能,其版本最低建议为 4.7.0。
- RocketMQ4.5.0引入了多副本(主从切换),其版本建议使用4.7.0。
- RocketMQ4.6.0引入了请求-响应模型。
- RocketMQ4.7.0同步复制更改为管道方式。
- RocketMQ4.8.0提升了 DLedger 模式能力。
- RocketMQ4.9.0优化生产消费性能处理。
实施方案
Broker升级
关闭一个Broker的写权限
关闭Broker写权限,让应用将流量平滑迁移到其他节点,这样可以有效避免在对该机器进行重启时对业务造成的影响。
1 | sh ./mqadmin updateBrokerConfig -b 10.146.15.8:10911 -n 10.146.15.8:9876 -k brokerPermission -v 4 |
等Broker写入、消费tps接近0时,关闭broker
1 | ps -ef | grep java |
使用新版本启动Broker
注意,此过程使用的配置文件为老版本的配置,故此时并没有开启写权限,启动并不会对客户端消息写入造成影响。
开启写权限
待新版本启动成功后,既可以开启写权限
1 | sh ./mqadmin updateBrokerConfig -b 10.146.15.8:10911 -n 10.146.15.8:9876 -k brokerPermission -v 6 |
Nameserver升级
采用滚动升级,kill掉老版本的nameserver,在原机器上启动新版本的nameserver即可