RabbitMQ vs Apache Kafka

Posted xiaobin-hlj80

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ vs Apache Kafka相关的知识,希望对你有一定的参考价值。

 

1. Why do we need MQ?

技术分享图片

(1) 消峰填谷

以订单系统和结算系统场景为例,如果订单系统通过RPC框架来调用结算系统,
在有高峰促销的情况下生成订单的量会非常大,而且由于生成订单的速度也非常快,
这样势必会给结算系统造成系统压力,服务器利用率则会偏高,但在不是高峰的时间点订单量比较小,
结算系统的服务器利用率则会偏低。

通过MQ的方式,将订单存储到MQ队列中,消费端通过拉取的方式,并且拉去速度有消费端来控制,则就可以控制流量趋于平稳。
这样对于结算系统来讲,就达到了削峰填谷的目的。或者说起到了流控的目标。

 

2. MQ Selection?

   (1)Scene

   RabMQ: Focus on standards(AMQP)

   Kafka:Focus on Application

   (2)Performance

   RabMQ: 20k- /s

   Kafka:   100k- /s 

 

技术分享图片    (3) Architecture and Design

技术分享图片

 

技术分享图片

 

 

 

Reference:

    1.《如何优雅的使用MQ-详述功能场景 - 王新栋》

    2.《Understanding When to use RabbitMQ or Apache Kafka

 

以上是关于RabbitMQ vs Apache Kafka的主要内容,如果未能解决你的问题,请参考以下文章

「事件驱动架构」Kafka vs. RabbitMQ:架构性能和用例

RabbitMq VS中简单使用

通过 Apache Spark Streaming 从 RabbitMq 读取消息

apache php RabbitMQ配置方式

使用 Apache QPID 在本地测试 RabbitMQ - 随机端口

我们能否拥有类似于 RabbitMq 的 Apache Kafka 强大的路由能力?