RocketMQ集群的升级方案效果显著

RocketMQ集群的升级方案、落地实施就自然而然的落到了我的头上,本文不仅要介绍一下笔者是如何升级的,更想展示作为一名架构师,处理这些问题的方法论,展示大厂架构师的工作日常。

温馨提示:关于ACL相关的内容,后续文章会单独分享从4.1.0版本升级到4.8并开启ACL的曲折经历。

1、版本升级的迫切性

说来惭愧,作为RocketMQ社区优秀布道师,笔者所在公司的RocketMQ服务端版本竟然还是4.1.0,RocketMQ在4.4.0版本之前是不支持ACL(访问控制),对应生产环境中任意一台机器都可以订阅任意topic,在任意一台生产应用服务器都可以安装一个rocketmq-console,从而控制整个集群,拥有删除主题、删除消费组的权限,想想是不是后背发凉.

2、升级方案

2.1 确定升级到的版本

翻开RocketMQ升级日志,RocketMQ在4.4.0版本正式引入了ACL机制,故版本至少要升级到4.4.0,在业界使用开源版本有一个不成文的规则:通常不要使用最新的版本,不要充当小白鼠。

但RocketMQ可以算是一个特殊。

通过仔细浏览RocketMQ的版本变更记录,我们不难发现RocketMQ Client 相关的变更非常少,即与用户关系紧密的消息发送、消息消费这块的代码非常的稳定,理论上基本不存在兼容性问题。并且每一个版本都修复了一些重大的BUG,性能提升也比较明显,故笔者这次决定“冒天下之大不韪”,决定将帮升级到最新版本4.8.0。

在这里在啰嗦一些,简单介绍一下RocketMQ几个具有里程杯意义的版本。

  • RocketMQ4.3.0正式引入了事务消息,如果大家希望使用事务消息,其版本最低建议为 4.6.1。
  • RocketMQ4.4.0引入了ACL、消息轨迹,如果需要使用这些功能,其版本最低建议为 4.7.0。
  • RocketMQ4.5.0引入了多副本(主从切换),其版本建议使用4.7.0。
  • RocketMQ4.6.0引入了请求-响应模型。

2.2 升级思路

版本升级的基本要求:业务不能停机,即要做到对业务无感知的升级。

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章