admin

Kafka 与传统消息系统简单比较
传统消息系统队列模型发布订阅模型队列模型一群消费者从服务器读取记录,每条记录只会分发给其中一个消费者。方便水平扩展...
扫描右侧二维码阅读全文
01
2018/09

Kafka 与传统消息系统简单比较

传统消息系统

  1. 队列模型
  2. 发布订阅模型

队列模型

一群消费者从服务器读取记录,每条记录只会分发给其中一个消费者。
方便水平扩展,负载均衡

发布订阅模型

记录会分发给所有的消费者。
适用于广播事件,比如通知集群节点刷新缓存,但无法对不同的订阅者进行负载均摊。

Kafka

相对于传统消息系统,Kafka 消费组则对两种模型进行了融合,下图摘自 Apache Kafka 官方文档。
consumer-groups.png
可以看到它既能够当做传统消息系统的队列模型来使用,分发到同一个消费组的的记录会被组里的消费者均摊消费,当消费组只有一个的情况下,就是传统的队列模型。

同时也可以当做传统消息系统的发布订阅模型来使用,分区的记录会分发给所有的消费组,当所有的消费组都只有一个消费者的情况下,就是传统的发布订阅模型。

以上两者组合起来使用就是如上图所示的架构了,即:使得传统的发布订阅者模型具备了负载均衡以及容错的功能,能够进行水平扩展。

Last modification:September 4th, 2018 at 11:25 am
If you think my article is useful to you, please feel free to appreciate

One comment

  1. na

    怎么联系你的,想请教个问题

Leave a Comment