zoukankan      html  css  js  c++  java
  • MQ消息中间件对比

    目前系统间数据交换,普遍采用的是基于消息队列中间件(MQ)实现。但目前开源的消息中间件琳琅满目,常见就有RocketMQ、ActiveMQ、RabbitMQ、Kafka、ZeroMQ等等。

    下面结合平台建设中比较关心功能点,包括可靠性、可用性、扩展能力、实现语言(便于阅读)、消费模型、消息类型、消息堆积能力、消息容错机制、处理性能等方面对市场上主流的RocketMQ、RabbitMQ、Kafka三款产品进行比较,确定谁才更适合我们的业务需要。

     

    功能

    RocketMQ

    Kafka

    RabbitMQ

     

    可靠性

    同步刷盘、 异步刷盘

    异步刷盘,丢数据概率高

    同步刷盘

     

    可用性

     
     

    横向扩展能力

    支持

    支持

    集群扩容依赖前端

    LVS 负载均衡调度

     

    实现语言

    Java

    Scala和Java

    Erlang

     

    消费模型

    Push / Pull

    Pull

    Push / Pull

     

    定时消息

    支持(只支持18个固定 Level)

    不支持

    支持

     

    顺序消息

    支持

    支持

    不支持

     

    消息堆积能力

    百亿级别(影响性能)

    百亿级别(影响性能)

    百亿级别(影响性能)

     

    消息堆积查询

    支持

    不支持

    不支持

     

    消息回溯

    支持

    不支持

    不支持

     

    消息重试

    支持

    不支持

    支持

     

    死信队列

    支持

    不支持

    支持

     

    性能(常规)

    非常好(十万级 QPS)

    非常好(百万级 QPS)

    一般(万级 QPS)

     

    性能(万级 Topic 场景)

    非常好(十万级 QPS)

     

    性能(海量消息堆积场景)

    非常好(十万级 QPS)

     

     

    从以上的对比结果来看,Apache RocketMQ对于其他两个优势明显。

  • 相关阅读:
    window.location.href的用法
    echarts折线图阴影设置
    SVN使用教程图文教程
    jksj算法训练营-第二课02 时间复杂度和空间复杂度分析
    jkjj算法训练营笔记-第二课01 训练环境配置、编码技巧和code style
    MySQL 基础模块的面试题总结
    MySQL 事务的面试题总结
    MySQL 中锁的面试题总结
    MySQL 命令和内置函数
    MySQL 性能优化 & 分布式
  • 原文地址:https://www.cnblogs.com/huanglibin/p/10138955.html
Copyright © 2011-2022 走看看