目前消息队列作为中间件可以为系统带来很多意想不到的好处。RocketMQ 作为消息队列之一被大多数公司采纳并使用。

选择中间件的可以从可靠性,性能,功能,可运维性,可拓展性,社区活跃度等几个维度来考虑。目前常用的几个中间件,ActiveMQ 作为“老古董”,市面上用的已经不多,其它的如 RabbitMQ、kafak、RoctetMQ 的特点为:

RabbitMQ:优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置;缺点:性能和吞吐量不太理想,不易进行二次开发

RocketMQ:优点:性能好,高吞吐量,稳定可靠,有活跃的中文社区;缺点:兼容性上不是太好

Kafka:优点:拥有强大的性能及吞吐量,兼容性很好;缺点:由于“攒一波再处理”导致延迟比较高

RocketMQ 使用最广,其详细优缺点为:

RocketMQ 优点:

  • 单机吞吐量:十万级
  • 可用性:非常高,分布式架构
  • 消息可靠性:经过参数优化配置,消息可以做到 0 丢失
  • 功能支持:MQ 功能较为完善,还是分布式的,扩展性好
  • 支持 10 亿级别的消息堆积,不会因为堆积导致性能下降
  • 源码是 Java,方便结合公司自己的业务进行二次开发
  • 天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法及时处理的情况
  • RoketMQ 在稳定性上可能更值得信赖,这些业务场景在阿里双11已经经历了多次考验

RocketMQ 缺点:

  • 支持的客户端语言不多,目前仅支持 Java 及 C++,而且 C++ 还不成熟
  • 没有在 MQ 核心中去实现 JMS 等接口,有些系统要迁移需要修改大量代码

当前好多系统都是面向用户的 C 端系统,具有一定的并发量,对性能也有比较高的要求,结合 RocketMQ 低延迟、吞吐量比较高的特点,RocketMQ 被越来越多的公司使用。

本文参考自:两万字、三十图、二十三问,搞定RocketMQ! - 掘金

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐