背景介绍
- RocketMQ版本
公司最近引入了阿里云的RocketMQ 企业铂金版本,由阿里云平台完全托管,能够在微服务、分布式系统和无服务应用程序之间,提供基于消息的可靠异步通信机制,轻松构建松耦合、可扩展、高可用分布式系统。
- 计费价格
整体来说价格公道,最主要用起来省事不少
问题由来
- 由于系统并发使用量较大,在每次的重启过程中都有消息莫名丢失
- 经排查很快发现了原因是由于封装的RocketMQ组件未设置安全的启动与关闭
解决方案
1.增加安全启动与关闭接口
2.在应用或者bean初始化后延迟启动RocektMQ,避免程序初未初始化完成导致消息没有被成功消费
3.同样的在程序关闭或者重启也需要安全关闭RocketMQ
4.加上事件监听应用停止和关闭双重保障
总结
引入一个中间件或组件时,需要完整了解其启动、关闭、运行机制,避免出现非运行时问题导致事故
作者:消灭知识盲区
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。