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的更多相关文章

  1. Kafka工作流程分析

    Kafka工作流程分析 生产过程分析 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘 ...

  2. Kafka架构深入:Kafka 工作流程及文件存储机制

    kafka工作流程: 每个分区都有一个offset消费偏移量,kafka并不能保证全局有序性. Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的 ...

  3. kafka工作流程| 命令行操作

    1.  概述 数据层:结构化数据+非结构化数据+日志信息(大部分为结构化) 传输层:flume(采集日志--->存储性框架(如HDFS.kafka.Hive.Hbase))+sqoop(关系型数 ...

  4. 3、kafka工作流程

    一.kafka各成员 kafka: 分布式消息系统,将消息直接存入磁盘,默认保存一周. broker: 组成kafka集群的节点,之间没有主从关系,依赖zookeeper来协调,broker负责满息的 ...

  5. Kafka工作流程

    Kafka生产过程分析 1 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机 ...

  6. kafka学习(二)kafka工作流程分析

    一.发送数据 follower的同步流程 PS:Producer在写入数据的时候永远的找leader,不会直接将数据写入follower PS:消息写入leader后,follower是主动的去lea ...

  7. 深入了解Kafka【二】工作流程及文件存储机制

    1.Kafka工作流程 Kafka中的消息以Topic进行分类,生产者与消费者都是面向Topic处理数据. Topic是逻辑上的概念,而Partition是物理上的概念,每个Partition分为多个 ...

  8. Apache kafka 工作原理介绍

    消息队列 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行 ...

  9. Pulsar Pub/Sub Messaging

    The Apache Software Foundation Announces Apache Pulsar as a Top-Level Project : The Apache Software ...

随机推荐

  1. UVa11542Squre——异或方程组&&高斯消元法

    题意 给出 $n$ 个整数,从中选出1个或多个,使得选出的整数乘积是完全平方数.一共有多少种选法?($1 \leq n \leq 100$,$1 \leq a_i \leq 10^{15}$ 且不含大 ...

  2. javaWeb开发中entityBean的习惯用法

    entity bean的作用是将与数据库交互的过程封装成对象,在servelet编写的过程中,只需要会写java,不必考虑与数据库交互细节. 实体类: 基本与数据库的表相对应,表示一个实在的对象. 例 ...

  3. Java Web 项目的文件/文件夹上传下载

    需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...

  4. 通过redash query results 数据源实现跨数据库的查询

    redash 提供了一个简单的 query results 可以帮助我们进行跨数据源的查询处理 底层数据的存储是基于sqlite的,期望后期有调整(毕竟处理能力有限),同时 query results ...

  5. pgloader 学习(七) 从归档文件加载数据

    我们可以直接从zip,tar,gzip 文件获取内容 command file 参考格式 LOAD ARCHIVE FROM /Users/dim/Downloads/GeoLiteCity-late ...

  6. 使用vue+mintui 开发省市区功能

    做移动端的都知道 经常会有省市区这种三级联动的功能 今天研究了一下午~ 1.准备工作 vue+mintui+省市区的json数据 下载地址:https://github.com/chzm/addres ...

  7. CURL shell 使用

    #! /bin/bash requrl="http://www.baidu.com/xxxxxx" while true do html=$(curl -s "$requ ...

  8. [NOI2019]回家路线

    [NOI2019]回家路线 题目大意: 有\(n\)个站点,\(m\)趟车,每趟车在\(p_i\)时从\(x_i\)出发,\(q_i\)时到达\(y_i\). 若小猫共乘坐了\(k\)班列车,依次乘坐 ...

  9. 均值不等式中的一则题目$\scriptsize\text{$(a+\cfrac{1}{a})^2+(b+\cfrac{1}{b})^2\ge \cfrac{25}{2}$}$

    例题已知正数\(a.b\)满足条件\(a+b=1\),求\((a+\cfrac{1}{a})^2+(b+\cfrac{1}{b})^2\)的最小值: 易错方法\((a+\cfrac{1}{a})^2+ ...

  10. Python实现 "反转字符串中的元音字母" 的方法

    #coding=utf- def reverseVowels(s): """ :type s: str :rtype: str """ sS ...