Jorgen's blog Jorgen's blog
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

jorgen

Love it, make mistakes, learn, keep grinding.
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 消息队列
  • message_queue
Jorgen
2023-02-14

消息队列

选型

消息队列业界主流的有Kafka、RabbitMQ、activeMQ、rocketMQ

Name 单机吞吐量 消息可靠性 持久化能力 可用性 核心特点 备注
ActiveMQ 万级,吞吐量比RocketMQ和Kafka要低一个数量级 有较低的概率丢失数据 内存、文件、数据库 基于主从架构实现高可用 MQ领域的功能及其完备 非常成熟,功能强大,在业内大量公司以及项目都有应用。 但是偶尔消息丢失的概率,并且现在社区以及国内应用都越来越少,官方社区对ActiveMQ5.X维护越来越少,而且确实主要是基于解耦和异步来用的,较少在大规模吞吐场景中使用
RabbitMQ 万级,吞吐量比RocketMQ和Kafka要低一个数量级 消息不丢失 内存、文件。支持数据堆积,但数据堆积反过来影响生产效率 高,基于主从架构实现高可用 基于Erlang开发,所以并发能力强,性能及其好,延时很低 erlang语言开发的,性能及其好,延时很低。而且开源的版本,就提供的管理界面非常棒。缺点就是吞吐量会低一些,且因为使用erlang开发,针对源码的定制非常困难,只能依赖于开源社区的维护。
RocketMQ 10万级,RocketMQ也是可以支撑高吞吐的一种MQ 经过参数优化配置,可以做到0丢失 磁盘文件 非常高,分布式架构 MQ功能较为完善,还是分布式的,扩展性好 接口简单易用,在阿里大规模应用过,日处理消息上 百亿之多,可以做到大规模吞吐,性能也非常好,分布式扩展也很方便,社区维护还可以,可靠性和可用性都是OK的,还可以支撑大规模的topic数量,支持复杂MQ业务场景。
Kafka 10万级1这是kafka最大的优点,就是吞吐量高。一般配置和数据类的系统进行实时数据计算、日志采集等场景 经过参数优化配置可以做到0丢失 磁盘文件,只要磁盘容量够,可以做到无限消息堆积 非常高,kafka是分布式的,一个数据多个副本,少数机器宕机后,不会丢失数据,不会导致不可用 功能较为简单,主要支持简单的MQ功能,在大数据领域的实时计算以及日志采集被大规模使用,是实时上的标准。 仅仅提供较少的核心功能,但是提供超高的吞吐量,ms级别的延迟,极高的可用性以及可靠性,分布式可以任意扩展。 同时kafka最好是支撑较少的topic数量即可,保证其超高的吞吐量。

kafka:起初是由LinkedIn公司采用Scala语言开发的一个分布式、多分区、多副本且基于zookeeper协调的分布式消息系统,现已捐献给Apache基金会。它是一种高吞吐量的分布式发布订阅消息系统,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark、Flink等都支持与Kafka集成,可为之后大数据分析做技术&数据积累。

  1. 提供完全分布式架构, 并有replica机制, 拥有较高的可用性和可靠性, 理论上支持消息无限堆积;
  2. 支持批量操作;
  3. 消费者采用Pull方式获取消息, 消息有序, 通过控制能够保证所有消息被消费且仅被消费一次;
  4. 有优秀的第三方Kafka Web管理界面Kafka-Manager;
  5. 在日志领域比较成熟,被多家公司和多个开源项目使用;
上次更新: 2025/03/09, 15:45:50
最近更新
01
STM32入门
03-09
02
ADB调试
03-09
03
微信小程序学习记录
02-09
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jorgen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式