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

1.目标

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

Apache Kafka工做流程

Apache Kafka工做流程| Kafka Pub-Sub Messagingapache

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 | 流处理拓扑ui

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。但愿你喜欢咱们的解释。spa

六,结论

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

相关文章
相关标签/搜索