其他分享
首页 > 其他分享> > RabbitMQ消息中间件技术精讲(一)

RabbitMQ消息中间件技术精讲(一)

作者:互联网

第一章 课程介绍

  1. 导航
  2. 业界主流消息中间件介绍
    1. MQ衡量指标:服务性能、数据存储、集群架构

    2. ActiveMQ:缺点:性能不是特別好,并不试用高并发场景,优点:API很完善,适用于中小型互联网公司

    3. kafka,优点:关注高性能,特点是基于pull模式来处理消息消费,追求高吞吐量,缺点:对于数据可靠性要求不是很高

    4. RocketMQ,起源于kafka,纯java编写,需要运维维护,缺点:商业版收费

    5. RabbitMQ,基于AMQP协议,试用于对数据一致性、稳定性和可靠性要求很高的场景
      在这里插入图片描述

      特性ActiveMQRabbitMQRocketMQKafka
      单机吞吐量万级万级10万级10万级,这是kafka最大特点就是吞吐量高,一般配合大数据来进行实时数据计算、日志采集等场景
      Topic数据对吞吐量的影响Topic可以达到几百几千的级别,吞吐量会有较小幅度下降,这是RabbitMQ的优势,在同等机器下,可以支持大量的TopicTopic从几十到几百的时候,吞吐量会大幅度下降。所以在同等机器下kafka尽量保持Topic数量不要过多,如果要支持大规模Topic,则要增加更多的机器
      时效性ms级微秒级,这是RabbitMQ一大特点,延迟是最低的ms级ms级
      可用性高,基于主从架构实现高可用性高,基于主从架构实现高可用性非常高,分布式架构非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用
      消息可靠性有较低的概率丢失数据经过参数优化配置,可以做到0丢失经过参数优化配置,可以做到0丢失
      功能支持MQ领域的功能及其完备基于Erlang开发,所以并发能力很强,性能极其好,延时很低MQ功能较为完备,还是分布式的,扩展好功能较为简单,主要支持简单的MQ功能,在大数据领域的实时计算以及日志采集被大规模时候用
      优劣势总结非常成熟,功能强大,在业内大量的公司以及项目中都有应用。偶尔会有较低概率丢失消息,而且现在社区以及国内应用越来越少,官方设置不够活跃。Erlang语言开发,性能极其好,延时很低,吞吐量到万级,MQ功能比较完备。而且社区活跃,但是Erlang语言开发,很难读懂源码很难定制和掌握阿里产品,接口简单易用,在双十一实践检验,日处理消息上百亿之多,可以做到大规模吞吐,性能非常好,分布式扩展也很方便,社区很活跃。Java开发,可以读懂源码,实现定制化kafka的特点其实很明显,就是仅仅提供较少的核心功能,但是提供超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展。同时kafka最好是支撑较少的topic数量即可,保证其超高吞吐量。而且kafka唯一的一点劣势是有可能消息重复消费,那么对数据准确性会造成极其轻微的影响,在大数据领域中以及日志采集中,这点轻微影响可以忽略。这个特性天然适合大数据实时计算以及日志收集

标签:精讲,RabbitMQ,kafka,万级,吞吐量,MQ,消息中间件,数据,分布式
来源: https://blog.csdn.net/Laravelchen/article/details/123081883