Apache Kafka工作流程| Kafka Pub-Sub Messaging

Posted a00ium

tags:

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

1.目标

在我们上一篇Kafka教程中,我们讨论了Kafka Docker今天,我们将讨论Kafka Workflow。此外,我们将详细介绍Pub-Sub Messaging的工作流程以及Queue Messaging / Consumer Group的工作流程。此外,我们将看到ZooKeeper在Apache Kafka中的作用。
那么,让我们从Kafka Workflow开始吧。

技术图片

Apache Kafka工作流程| Kafka Pub-Sub Messaging

2.什么是Kafka Workflow?

在Kafka Workflow中,Kafka是主题的集合,它们被分成一个或多个分区,而分区是一系列消息,其中index标识每条消息(我们也称为偏移量)。但是,在Kafka集群中所有数据都是分区的不相交联合。传入消息出现在分区的末尾,因此消费者可以读取它们。此外,通过将消息复制到不同的代理,它可以保持持久性。
让我们修改Apache Kafka架构Kafka
以非常快速,可靠,持久,容错和零停机的方式提供基于Pub-sub和队列的消息传递系统。此外,生产者将消息发送到主题,并且消费者可以根据他们的愿望选择任何一个消息系统。

3. Pub-Sub Messaging的工作流程

在Apache Kafka中,Pub-Sub Messaging的逐步工作流程是:

  • Kafka Producers定期将消息发送给主题。
  • Kafka Brokers将所有消息存储在为该特定主题配置的分区中,从而确保在分区之间平均分配消息。例如,如果生产者发送两条消息并且有两个分区,则Kafka将在第一个分区中存储一条消息而在第二个分区中存储第二条消息。
  • 此外,Kafka Consumer订阅了一个特定主题。
  • 消费者订阅主题后,Kafka会向消费者提供主题的当前偏移量,并将偏移量保存在Zookeeper集合中。
  • 此外,消费者将定期请求Kafka,以获取新消息(如100 Ms)。
  • Kafka将在收到生产者后立即将消息转发给消费者。
  • 消费者将收到消息并进行处理。
  • 然后Kafka经纪人收到已处理邮件的确认。
  • 此外,一旦Kafka收到确认,就会更改偏移并将其更新为新值。即使在服务器暴动期间,消费者也可以正确读取下一条消息,因为ZooKeeper会维护偏移量。
  • 但是,在消费者停止请求之前,流程会重复。
  • 作为一种好处,消费者可以随时回放/跳过主题的任何偏移,并且还可以阅读所有后续消息,作为一个标准的愿望。

阅读Kafka Performance Tuning

4. Kafka Queue消息/消费者组的工作流程

具有相同组ID的一组Kafka消费者可以在队列消息传递系统中订阅主题而不是单个消费者。但是,对于所有使用者具有相同的组ID,订阅主题的用户被视为单个组并共享消息。该系统的工作流程是:

  • Kafka Producers定期发送消息给Kafka主题。
  • 与前面的场景类似,此处Kafka还会在为该特定主题配置的分区中存储所有消息。
  • 此外,Kafka中的单个消费者订阅了特定主题。
  • 与Pub-Sub Messaging相同,Kafka与消费者交互,直到新消费者订阅同一主题。
  • 随着新客户的到来,共享模式从操作开始,并在两个Kafka消费者之间共享数据。此外,在Kafka使用者的数量等于为该特定主题配置的分区数量之前,共享重复。
  • 虽然,一旦Kafka消费者的数量超过分区数量,Kafka的新消费者将不会收到任何进一步的消息。它发生在任何一个现有的消费者取消订阅之前。出现这种情况是因为在Kafka中存在一个条件,即每个Kafka消费者将至少有一个分区,如果没有分区保持空白,那么新消费者将不得不等待。
  • 此外,我们还称其为Kafka Consumer Group。因此,Apache Kafka将以非常简单和有效的方式提供两种系统中的最佳系统。

学习Apache Kafka Streams | 流处理拓扑

5. ZooKeeper在Apache Kafka中的作用

Apache Zookeeper充当Kafka代理和消费者之间的协调接口。此外,我们可以说它是一个分布式配置和同步服务。基本上,ZooKeeper集群与Kafka服务器共享信息。此外,Kafka在ZooKeeper Kafka中存储基本元数据信息,例如主题,代理,消费者偏移(队列读取器)等。
点击链接,了解有关Zookeeper在Kafka中的角色的更多信息
此外,Kafka Zookeeper / broker的故障不会影响Kafka集群。这是因为存储在ZooKeeper中的关键信息会在其集合中复制。然后Kafka在ZooKeeper重新启动时恢复状态,导致Kafka零停机。然而,在领导失败的情况下,Zookeeper还在Kafka经纪人之间进行领导选举。
因此,这完全是关于Apache Kafka Workflow。希望你喜欢我们的解释。

六,结论

因此,我们已经看到了Apache Kafka Workflow的概念。此外,在这个Kafka Workflow教程中,我们讨论了Pub-Sub Messaging系统的Workflow,以及Kafka Queue Messaging系统的工作流程最后,我们看到了Zookeeper在Apache Kafka中的作用。不过,如果对Kafka Workflow有任何疑问,请随时在评论部分询问。
另请参阅 -  
具有薪资趋势的Apache Kafka职业范围
供参考

以上是关于Apache Kafka工作流程| Kafka Pub-Sub Messaging的主要内容,如果未能解决你的问题,请参考以下文章

kafka的生产者类

kafka 0.10.2 消息生产者

如何监控 Apache Kafka 指标?

kafka 相关命令 偏移重置

Kafka 与 Apache Pulsar 相比都有哪些优缺点 [关闭]

Kafka集群