美文网首页
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-如何选择消息队列

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