美文网首页
02-如何选择消息队列

02-如何选择消息队列

作者: weylau | 来源:发表于2019-08-07 22:54 被阅读0次

选择标准

  • 是否开源以及是否有活跃的社区

bug能快速修复,遇到问题能更快的解决

  • 较好的兼容以及集成
  • 消息的可靠传递:确保不丢消息;
  • 支持集群,确保不会因为某个节点宕机导致服务不可用,当然也不能丢消息;
  • 性能:具备足够好的性能,能满足绝大多数场景的性能要求。

消息队列产品对比

rabbitmq

优点

  • exchange灵活的路由配置
  • 轻量、开箱即用,容易部署使用
  • 客户端支持的语言多

缺点

  • 对消息堆积不友好,当消息堆积时,性能急剧下降
  • 相对于其他产品,性能较差,每秒大概处理几万到十几万消息
  • 使用小众语言erlang开发,不便于二次开发

rocketmq

由阿里开源,现已捐赠Apache软件基金会

优点

  • 性能好,每秒处理几十万消息
  • 低延时,适合在线应用场景
  • 中文社区强大
  • java开发,便于二次开发和扩展

kafka

Kafka 最早是由 LinkedIn 开发,目前也是 Apache 的顶级项目。Kafka 最初的设计目的是用于处理海量的日志。

优点

  • 与周边生态系统的兼容性是最好的没有之一,尤其在大数据和流计算领域,几乎所有的相关开源软件系统都会优先支持 Kafka。

  • 超高的性能。Kafka 的性能,尤其是异步收发的性能,是三者中最好的,但与 RocketMQ 并没有量级上的差异,大约每秒钟可以处理几十万条消息。

缺点

  • “先攒一波再一起处理”的设计,导致消息有延时,不太适合在线业务场景

如何选择

  • 如果说,消息队列并不是你将要构建系统的主角之一,你对消息队列功能和性能都没有很高的要求,只需要一个开箱即用易于维护的产品,我建议你使用 RabbitMQ。

  • 如果你的系统使用消息队列主要场景是处理在线业务,比如在交易系统中用消息队列传递订单,那 RocketMQ 的低延迟和金融级的稳定性是你需要的。

  • 如果你需要处理海量的消息,像收集日志、监控信息或是前端的埋点这类数据,或是你的应用场景大量使用了大数据、流计算相关的开源产品,那 Kafka 是最适合你的消息队列。

内容来源说明:文章中的部分内容以及图片来自《极客时间-消息队列高手课》,写文章目的只是作为学习后的总结和整理

相关文章

  • 02-如何选择消息队列

    选择标准 是否开源以及是否有活跃的社区 bug能快速修复,遇到问题能更快的解决 较好的兼容以及集成 消息的可靠传递...

  • 该如何选择消息队列

    选择消息队列产品的基本标准: 虽然这些消息队列产品在功能和特性方面各有优劣,但我们在选择的时候要有一个最低标准,保...

  • 该如何选择消息队列?

    在高并发业务场景下,消息队列在流量削峰、解耦上有不可替代的作用。当前使用较多的消息队列有 RabbitMQ、Roc...

  • 消息队列

    为什么使用消息队列?消息队列有什么优点和缺点? 如何保证消息队列高可用?如何保证消息不被重复消费? kafka,a...

  • 分布式之消息队列复习精讲

    引言 复习要点 本文大概围绕如下几点进行阐述: 为什么使用消息队列?使用消息队列有什么缺点?消息队列如何选型?如何...

  • 消息队列应用-使用异步队列就解耦了吗

    消息队列作用一文介绍了为什么要使用消息队列。我们再来讨论下如何有效使用消息队列。 消息队列模式 目前主流消息队列主...

  • 消息队列——了解一下

    本文将从以下几点展开 为什么使用消息队列? 消息队列的缺点 消息队列如何选型 RabbitMQ RabbitMQ ...

  • RabbitMQ入门

    一个整体的项目正在逐步分离成各个服务,系统间的通讯采用消息队列传递,消息队列选择了RabbitMQ 服务器上如何安...

  • 消息队列如何解决消息丢失问题?如何保证消息的顺序性?消息积压问题

    消息队列经典十连问: 1.什么是消息队列? 2.消息队列的应用场景? 3.消息队列如何解决消息丢失问题? 4.消息...

  • 分布式之消息队列复习精讲!

    前言 复习要点 本文大概围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型?...

网友评论

      本文标题:02-如何选择消息队列

      本文链接:https://www.haomeiwen.com/subject/dyjzdctx.html