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. 埃氏素数筛法(Eratosthenes)

    埃氏筛法: 对于每一个小于n的非负整数p,删去2p,3p,4p......,当处理完所有数后,还没有删除的就是素数. 想法:用a记录素数表,a[i]=1表示不是素数,a[i]=0表示是素数. #inc ...

  2. PostgreSQL JSON 处理

    1.JSON类型    PostgreSQL支持JSON和JSONB.这两种类型在使用上几乎完全一致,主要区别是: (1)JSON类型把输入的数据原封不动的存放到数据库中.JSONB类型在存放时把JS ...

  3. select类型的input

    在选择类型一般都会用到下拉框  下拉选择类型 下拉框的类型就是在div中加一个select标签  然后在后面追加格式就行了 格式为 <select> <option value=&q ...

  4. learning java 文件锁

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...

  5. learning java 读写其他进程的数据

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...

  6. div+css制作哆啦A梦

    纯CSS代码加上 制作动画版哆啦A梦(机器猫) 哆啦A梦(机器猫)我们大家一定都很熟悉,今天给大家演示怎么用纯CSS.代码,来做一个动画版的哆啦A梦. 效果图: 下面代码同学可以查看一下,每个线条及椭 ...

  7. DEA Push rejected: Push to origin/master was rejected问题的解决方法

    打开需要上传文件所在的文件夹 使用git bash git pull origin master –allow-unrelated-histories git push -u origin maste ...

  8. 下载根目录下的pdf文件, 浏览器下载

    public void outPut(HttpServletRequest request, HttpServletResponse response, Integer type) { ClassPa ...

  9. CTF CMS(转)

    CTF--CMS漏洞总结 海洋CMS 6.28 海洋CMS6.28命令执行漏洞 6.45-6.54 漏洞预警 | 海洋CMS(SEACMS)0day漏洞预警 8.8(未验证) 海洋cms前台到后台的g ...

  10. nginx支持websocket及websocket部分原理介绍

    nginx支持websocket及websocket部分原理介绍最近ipc通过websocket与server进行通行,经过无法通过nginx进行反向代理,只有直连nodejs端口.而且部署到阿里云用 ...