当前位置:K88软件开发文章中心大数据Apache Kafka → 文章内容

Apache Kafka 快速指南

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 10:04:58

件和说明1Broker(代理)Kafka集群通常由多个代理组成以保持负载平衡。 Kafka代理是无状态的,所以他们使用ZooKeeper来维护它们的集群状态。 一个Kafka代理实例可以每秒处理数十万次读取和写入,每个Broker可以处理TB的消息,而没有性能影响。 Kafka经纪人领导选举可以由ZooKeeper完成。2 ZooKeeper ZooKeeper用于管理和协调Kafka代理。 ZooKeeper服务主要用于通知生产者和消费者Kafka系统中存在任何新代理或Kafka系统中代理失败。 根据Zookeeper接收到关于代理的存在或失败的通知,然后产品和消费者采取决定并开始与某些其他代理协调他们的任务。3Producers(制片人)生产者将数据推送给经纪人。 当新代理启动时,所有生产者搜索它并自动向该新代理发送消息。 Kafka生产者不等待来自代理的确认,并且发送消息的速度与代理可以处理的一样快。4Consumers(消费者)因为Kafka代理是无状态的,这意味着消费者必须通过使用分区偏移来维护已经消耗了多少消息。 如果消费者确认特定的消息偏移,则意味着消费者已经消费了所有先前的消息。 消费者向代理发出异步拉取请求,以具有准备好消耗的字节缓冲区。 消费者可以简单地通过提供偏移值来快退或跳到分区中的任何点。 消费者偏移值由ZooKeeper通知。Apache Kafka - WorkFlow到目前为止,我们讨论了Kafka的核心概念。 让我们现在来看一下Kafka的工作流程。Kafka只是分为一个或多个分区的主题的集合。 Kafka分区是消息的线性有序序列,其中每个消息由它们的索引(称为偏移)来标识。 Kafka集群中的所有数据都是不相连的分区联合。 传入消息写在分区的末尾,消息由消费者顺序读取。 通过将消息复制到不同的代理提供持久性。Kafka以快速,可靠,持久,容错和零停机的方式提供基于pub-sub和队列的消息系统。 在这两种情况下,生产者只需将消息发送到主题,消费者可以根据自己的需要选择任何一种类型的消息传递系统。 让我们按照下一节中的步骤来了解消费者如何选择他们选择的消息系统。发布 - 订阅消息的工作流程以下是Pub-Sub消息的逐步工作流程 - 生产者定期向主题发送消息。Kafka代理存储为该特定主题配置的分区中的所有消息。 它确保消息在分区之间平等共享。 如果生产者发送两个消息并且有两个分区,Kafka将在第一分区中存储一个消息,在第二分区中存储第二消息。消费者订阅特定主题。一旦消费者订阅主题,Kafka将向消费者提供主题的当前偏移,并且还将偏移保存在Zookeeper系综中。消费者将定期请求Kafka(如100 Ms)新消息。一旦Kafka收到来自生产者的消息,它将这些消息转发给消费者。消费者将收到消息并进行处理。一旦消息被处理,消费者将向Kafka代理发送确认。一旦Kafka收到确认,它将偏移更改为新值,并在Zookeeper中更新它。 由于偏移在Zookeeper中维护,消费者可以正确地读取下一封邮件,即使在服务器暴力期间。以上流程将重复,直到消费者停止请求。消费者可以随时回退/跳到所需的主题偏移量,并阅读所有后续消息。队列消息/用户组的工作流在队列消息传递系统而不是单个消费者中,具有相同组ID 的一组消费者将订阅主题。 简单来说,订阅具有相同 Group ID 的主题的消费者被认为是单个组,并且消息在它们之间共享。 让我们检查这个系统的实际工作流程。生产者以固定间隔向某个主题发送消息。Kafka存储在为该特定主题配置的分区中的所有消息,类似于前面的方案。单个消费者订阅特定主题,假设 Topic-01 为 Group ID 为 Group-1 。Kafka以与发布 - 订阅消息相同的方式与消费者交互,直到新消费者以相同的组ID 订阅相同主题 Topic-01 1 。一旦新消费者到达,Kafka将其操作切换到共享模式,并在两个消费者之间共享数据。 此共享将继续,直到用户数达到为该特定主题配置的分区数。一旦消费者的数量超过分区的数量,新消费者将不会接收任何进一步的消息,直到现有消费者取消订阅任何一个消费者。 出现这种情况是因为Kafka中的每个消费者将被分配至少一个分区,并且一旦所有分区被分配给现有消费者,新消费者将必须等待。此功能也称为使用者组。 同样,Kafka将以非常简单和高效的方式提供两个系统中最好的。ZooKeeper的作用Apache Kafka的一个关键依赖是Apache Zookeeper,它是一个分布式配置和同步服务。 Zookeeper是Kafka代理和消费者之间的协调接口。 Kafka服务器通过Zookeeper集群共享信息。 Kafka在Zookeeper中存储基本元数据,例如关于主题,代理,消费者偏移(队列读取器)等的信息。由于所有关键信息存储在Zookeeper中,并且它通常在其整体上复制此数据,因此Kafka代理/ Zookeeper的故障不会影响Kafka集群的状态。 Kafka将恢复状态,一旦Zookeeper重新启动。 这为Kafka带来了零停机时间。 Kafka代理之间的领导者选举也通过使用Zookeeper在领导者失败的情况下完成。要了解有关Zookeeper的详细信息,请参阅 zookeeper 让我们继续进一步关于如何在您的机器上安装Java,ZooKeeper和Kafka在下一章。Apache Kafka - 安装步骤以下是在机器上安装Java的步骤。步骤1 - 验证Java安装希望你已经在你的机器上安装了java,所以你只需使用下面的命令验证它。$ java -version如果java在您的机器上成功安装,您可以看到已安装的Java的版本。步骤1.1 - 下载JDK如果没有下载Java,请通过访问以下链接并下载最新版本来下载最新版本的JDK。http://www.oracle.com/technetwork/java/javase/downloads/index.html现在最新的版本是JDK 8u 60,文件是“jdk-8u60-linux-x64.tar.gz"。 请在您的机器上下载该文件。步骤1.2 - 提取文件通常,正在下载的文件存储在下载文件夹中,验证它并使用以下命令提取tar设置。$ cd /go/to/download/path$ tar -zxf jdk-8u60-linux-x64.gz步骤1.3 - 移动到选择目录要将java提供给所有用户,请将提取的java内容移动到 usr / local / java / folder。$ supassword: (type password of root user)$ mkdir /opt/jdk$ mv jdk-1.8.0_60 /opt/jdk/步骤1.4 - 设置路径要设置路径和JAVA_HOME变量,请将以下命令添加到?/ .bashrc文件。export JAVA_HOME =/usr/jdk/jdk-1.8.0_60export PATH=$PATH:$JAVA_HOME/bin现在将所有更改应用到当前运行的系统。$ source ~/.bashrc步骤1.5 - Java替代使用以下命令更改Java Alternativ

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


Apache Kafka 快速指南