首页 > 编程知识 正文

中职计算机专业高级教程修订版,计算机专业英语教程

时间:2023-05-06 08:24:02 阅读:43244 作者:1655

本教程假设你是聪明的果汁,没有Kafka或ZooKeeper的经验。 Kafka控制脚本在Unix和Windows平台上不同。 在Windows平台上,请使用sldxmfwindows而不是sldxmf/,并将脚本扩展名更改为. bat。

Step 1:下载代码

下载并解压缩1.0.0版。 水平。

启动Step 2:服务器

Kafka正在使用ZooKeeper。 如果还没有ZooKeeper服务器,则必须首先启动ZooKeeper服务器。 使用与kafka打包的有用脚本,可以快速轻松地创建单节点ZooKeeper实例。

启动Kafka服务器。

创建step :主题

创建一个名为“test”的主题集吧。 有分区和副本。

现在,您可以运行列表命令来验证此主题。

或者,如果不存在已发布的topic,则可以将代理配置为自动创建topic,而不是手动创建。

Step 4:发送几条消息

Kafka附带了命令行客户端,用于从文件或标准输入中检索输入,并将其作为消息发送到Kafka群集。 默认情况下,每行作为单独的消息发送。

运行producer,在控制台中输入消息并将其发送到服务器。

Step 5:启动客户

Kafka还有一个命令行“consumer”,用于将消息转储到标准输出。

在其他终端上执行上述命令后,可以将消息输入生产者终端,并显示在消费者终端上。

所有命令行工具都有其他选项。 在没有参数的情况下运行命令,将显示更详细的使用信息。

Step 6:多代理群集设置

到目前为止,我们使用了一个代理,这没意思。 对Kafka来说,每个代理都是一个大小为1的群集,除了启动更多代理实例之外没有任何变化。 为了深入了解这一点,让我们将群集扩展到三个节点(仍在本地计算机上)。

首先,为每个代理创建一个配置文件。 在Windows上改为使用copy命令。

编辑这些新文件并设置以下属性:

broker.id属性是群集中每个节点的名称,该名称是唯一且永久的。 必须重写端口和日志目录。 因为它们在同一台计算机上运行,所以所有代理都不想尝试在同一端口上注册,也不想试图复盖彼此的数据。

与Zookeeper构建了单节点。 现在只需要启动两个新节点。

创建副本为3的新主题。

Good,现在我们有集群了,你怎么知道那些代理在做什么? 运行" describe topics "命令以显示以下信息:

以下是输出信息的解释。 第一行概述了所有分区,第二行提供了分区的信息。 我们只有一个分区,所以只有一行。

" leader "是负责指定分区的所有读写操作的节点。 每个节点都是随机选择的部分分区的领导者。 “复制”是要复制分区日志的节点列表。 无论这些节点是leader还是只是活着。 “isr”是一组“同步”的复制副本,是复制副本列表的子集,并且被活着指出给了leader。 在本示例中,请注意节点1是主题中唯一分区的领导者。

可以在创建的原始主题中运行相同的命令来确定其位置。

这没什么大不了的。 原始主题没有副本,在服务器0上。 创建群集时,这是唯一的服务器。

让我们在新的主题上发布一些信息:

现在,让我们来消费这些新闻:

测试一下容错性吧。 经纪人1现在是leader。 杀了它吧:

在Windows上使用:

领导权切换到从节点,节点1也不在同步副本集中:

但是,即使没有读取器写入消息,这些消息也可以用于消费。

使用step 7: Kafka连接导入/导出数据

从控制台读取数据并写回是10分

方便操作的,但你可能需要使用其他来源的数据或将数据从Kafka导出到其他系统。针对这些系统, 你可以使用Kafka Connect来导入或导出数据,而不是写自定义的集成代码。

Kafka Connect是Kafka的一个工具,它可以将数据导入和导出到Kafka。它是一种可扩展工具,通过运行connectors(连接器), 使用自定义逻辑来实现与外部系统的交互。 在本文中,我们将看到如何使用简单的connectors来运行Kafka Connect,这些connectors 将文件中的数据导入到Kafka topic中,并从中导出数据到一个文件。

首先,我们将创建一些种子数据来进行测试:

在Windows系统使用:

接下来,我们将启动两个standalone(独立)运行的连接器,这意味着它们各自运行在一个单独的本地专用 进程上。 我们提供三个配置文件。首先是Kafka Connect的配置文件,包含常用的配置,如Kafka brokers连接方式和数据的序列化格式。 其余的配置文件均指定一个要创建的连接器。这些文件包括连接器的唯一名称,类的实例,以及其他连接器所需的配置。

这些包含在Kafka中的示例配置文件使用您之前启动的默认本地群集配置,并创建两个连接器: 第一个是源连接器,用于从输入文件读取行,并将其输入到 Kafka topic。 第二个是接收器连接器,它从Kafka topic中读取消息,并在输出文件中生成一行。

在启动过程中,你会看到一些日志消息,包括一些连接器正在实例化的指示。 一旦Kafka Connect进程启动,源连接器就开始从test.txt读取行并且 将它们生产到主题connect-test中,同时接收器连接器也开始从主题connect-test 中读取消息, 并将它们写入文件test.sink.txt 中。我们可以通过检查输出文件的内容来验证数据是否已通过整个pipeline进行交付:

请注意,数据存储在Kafka topic connect-test 中,因此我们也可以运行一个console consumer(控制台消费者)来查看 topic 中的数据(或使用custom consumer(自定义消费者)代码进行处理):

连接器一直在处理数据,所以我们可以将数据添加到文件中,并看到它在pipeline 中移动:

您应该可以看到这一行出现在控制台用户输出和接收器文件中。

Step 8:使用 Kafka Streams 来处理数据

Kafka Streams是用于构建实时关键应用程序和微服务的客户端库,输入与输出数据存储在Kafka集群中。 Kafka Streams把客户端能够轻便地编写部署标准Java和Scala应用程序的优势与Kafka服务器端集群技术相结合,使这些应用程序具有高度伸缩性、弹性、容错性、分布式等特性。 下期“快速入门示例”将演示如何运行一个基于该库编程的流式应用程序。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。