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:架构性能和用例
通过 Apache Spark Streaming 从 RabbitMq 读取消息