分布式消息服务RocketMQ基于开源产品RocketMQ进行问题修复与优化,并自主研发,实现低成本、高可靠、高性能和具备监控运维能力的中间件产品。
使用开源RocketMQ遇到的问题
- 功能不完善:功能比较单一,针对不同应用场景无法有效支持,如消息查询,数据自动删除策略等。
- 可维护性差:缺乏配套监控运维能力,难以迅速发现解决如消息堆积、队列堵塞等问题。
- 可靠性较低:消息服务不提供主备切换能力,存在单点故障,无法保证服务高可用。
分布式消息服务RocketMQ改进点
高可用、高可靠改进:
- 实现自动主备切换、自动拉起功能,保证服务高可用。
- 实现消息删除策略,按不同的场景优先保证服务可用性或者数据安全性。
可维护性改进:
- 实现按生产者、消费者、数据节点、队列4种维度的运行状态监控,方便快速发现问题。
- 实现可视化的监控、配置、管理界面实现自动化测试,以快速迭代
新增功能:
- 新增消息查询,做到可查可追踪
- 重新封装SDK,简化应用使用,并提供按hash算法实现消息局部有序生产消费。
开源自建对比项
对比项 | 开源自建 | 分布式消息服务RocketMQ |
---|---|---|
自动化部署 | 不支持自动化部署,需要专业人员自行部署、运维 | 全托管PaaS,免机器资源一键自动化部署。开箱即用,按需使用,支持弹性扩容 |
运维监控 | 缺乏配套的监控运维能力 | 提供多维度的数据可视化监控,快速定位、处理问题 |
增强能力 | 功能单一,无法支持多种场景需求 | 功能丰富,支持消息重试、消息查询、消息轨迹查询、数据自动清理等定制化功能 |
延迟消息/定时消息 | 仅支持18个固定延迟时长,最长延迟2小时。 | 支持秒级的任意延迟时长,最长延迟40天 |
ACL访问控制 | 访问控制配置复杂 | 灵活配置,一键生效 |