mq选择

作者: 牛牛_735d | 来源:发表于2019-08-26 22:04 被阅读0次

基本标准

  1. 开源: 遇到有问题的bug可以通过修改源码的方式来修复或者规避、而不是只能等待下一个官方版本发版来修复
  2. 产品社区有一定活跃度: 遇到问题的时候、可以快速找到类似场景、快速修复, 相比于每一个bug都需要自己通过阅读源码来解决、毕竟线上问题挂着的的成本很高
    社区活跃度较高的产品、与周边应用的兼容性也会比较好、省去很多造轮子的时间
  3. 性能要求:
    1. 确保消息可靠传递、不丢失消息
    2. 支持集群、确保某个节点宕掉不会影响整个服务
    3. 性能、能满足大部分实际需求场景的需要

目前可选方案

RabbitMQ
源码实现 : Erlang
特点: 轻量级、性能好、方便部署和使用、维护简单
         支持灵活的路由配置、相对其它MQ、在Producer和Queue之间增加Exchange模块、可根据配置规则将生产者发出的Msg发送到不同队列
         Client支持多种语言

短处: 
1. 消息堆积处理支持不好、消息大量堆积时会导致MQ的性能急速下降
2. 处理消息的性能比较一般、根据硬件配置不同、每秒大概可以处理的消息数量为: 几w ~ 十几w
3. 源码语言为Erlang、比较小众、扩展开发成本增加
RocketMQ
2012年阿里开源出来的产品、17年交给apache维护
源码: Java
性能: 稳定性、可靠性和性能都不错、对响应延迟也做了优化、大多数情况可以做到ms级的响应、每秒可处理消息 几十万(性能比RabbitMQ高一个数量级)

短处: 相比国外同类产品、与周边生态系统的集成度和兼容性稍低
Kafka
最初设计是为了处理海量日志、早期版本不保证消息可靠性、也不支持集群、但对于处理海量日志这个诉求是比较好的选择

近期版本、在数据可靠性、稳定性和功能特性上都可以满足大多数的场景需求

源码实现: Java + Scala
优势:
1. 与周边生态系统的兼容性最好、尤其是大数据和流计算领域、几乎所有相关开源软件都优先支持Kafka
2.  异步收发性能最好、在服务器配置高时、极限情况每秒可处理2000w消息

短处:
异步批量处理带来的问题是: 同步收发响应延时较高、它是攒一批然后批量发送、每秒消息数没那么高的时候、kafka的延时反而会高、

不适合在线业务场景

第二梯队mq

ZeroMQ

严格来说不能算是消息队列、而是一个基于消息队列的多线程网络库
如果需求是将消息队列的功能集成到系统进程中、可以考虑ZeroMQ

ActiveMQ

社区已经不活跃、进入了老年期

相关文章

  • mq选择

    基本标准 开源: 遇到有问题的bug可以通过修改源码的方式来修复或者规避、而不是只能等待下一个官方版本发版来修复...

  • MQ的选择

    1.Kafka Kafka 主要特点是基于 Pull 的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志...

  • Kafka和MQ的差异

    做为消息队列来说,企业中选择MQ的还是多数,像Rabbit,Rocket和Active等MQ中间件相对成熟,性能一...

  • 腾讯资深技术官23天手撸笔记,全新演绎“Kafka部署实战”,已

    导言 我们知道,当下流行的MQ非常多,不过很多公司在技术选型上还是选择使用Kafka。与其他主流MQ进行对比,我们...

  • 腾讯技术官手撸笔记,全新演绎“Kafka部署实战”,已开源

    导言 我们知道,当下流行的MQ非常多,不过很多公司在技术选型上还是选择使用Kafka。与其他主流MQ进行对比,我们...

  • MQ(消息队列)的选择

    本文转自Sam哥哥的博客,转载的目的是收藏,如有侵权,请通知我删除。 MQ框架非常之多,比较流行的有RabbitM...

  • MQ新选择之tubemq

    简介 TubeMQ 是腾讯在 2013 年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传...

  • MQ的使用及QMQ的设计

    1. 为什么要用MQ? MQ带来了什么好处? 带来了什么坏处? 为什么要用MQ?MQ(message queue)...

  • RocketMQ整体介绍

    1. MQ介绍 1.1 什么是MQ?为什么要用MQ? MQ:MessageQueue,消息队列。队列,是一种FIF...

  • Spring Cloud Alibaba RocketMQ -

    MQ的选择 消息队列对比参照表: RocketMQ vs. ActiveMQ vs. Kafka: 参考至: 消息...

网友评论

      本文标题:mq选择

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