Kafka消息处理如何在发布 - 订阅模式下扩展?

时间:2017-07-16 14:37:42

标签: apache-kafka

全部,请原谅我,我只是Kafka初学者的新手。目前,我正在阅读Kafka关于the difference between traditional message system like Active MQ and Kafka的文件。

正如文件所述。

对于传统的消息系统。他们无法扩展消息处理。 由于

  

发布 - 订阅允许您将数据广播到多个进程,但是   由于每条消息都发送给每一条消息,因此无法进行扩展处理   订户。

我认为这对我有意义。

但对于Kafka。文档说Kafka即使在发布 - 订阅模式下也可以扩展消息处理。 (如果我错了,请纠正我。谢谢。)

  

Kafka中的消费者群体概念概括了这两个概念。如   使用队列,使用者组可以分割处理   过程集合(消费者组的成员)。如   使用发布 - 订阅,Kafka允许您广播消息   多个消费者群体。

     

Kafka模型的优势在于每个主题都有这两个   properties- 它可以扩展处理,也是多用户 -   没有必要选择其中一个。

所以我的问题是Kafka如何制作它?我的意思是在发布 - 订阅模式下扩展处理。感谢。

1 个答案:

答案 0 :(得分:2)

Kafka中支持可扩展pub / sub的主要独特功能是:

  1. 对单个主题进行分区,并将活动分区分布到群集中的多个代理,以利用更多计算机,磁盘和缓存。生产者和消费者经常连接到群集中的许多或所有节点,而不仅仅是给定主题/队列的单个主节点。
  2. 将所有消息存储在顺序提交日志中,而不是在使用时删除它们。这导致更多的顺序读取和写入,卸载代理不必处理跟踪不同的消息副本,删除单个消息,处理碎片,跟踪哪个消费者已确认消费哪些消息。
  3. 启用单个使用者和使用者组的智能并行处理,使每个并行消息流可以来自#1中提到的分布式分区,同时将偏移管理和分区分配逻辑卸载到客户端本身。卡夫卡与更多的消费者进行扩展,因为消费者做了一些工作(不像大多数其他的酒吧/子经纪人,其中大部分工作是在经纪人中完成的)