你听说过AMQ流吗?这是一个卡夫卡平台的基础上阿帕奇卡夫卡和红帽供电。AMQ Streams 的一大优势是,作为所有红帽工具,它是开源的。
这篇文章是关于阿帕奇卡夫卡的一个共同特点,叫做卡夫卡连接。我将解释它如何与 OpenShift 配合使用。
什么是卡夫卡连接?
卡夫卡连接是阿帕奇卡夫卡的开源组件®。它是一个框架,用于将 Kafka 与外部系统(如数据库、键值存储、搜索索引和文件系统)连接起来。电报平台是这些系统之一,在本文中,我将演示如何使用Kafka连接部署在OpenShift上,从电报获取数据。
卡夫卡连接API架构
基本上有两种类型的卡夫卡连接器:
来源:
源连接器从系统收集数据并将其发送到 Kafka 主题,例如,我们可以从电报获取消息并将其放入 Kafka 主题中。
Synk:
接收器连接器将 Kafka 主题的数据传递到其他系统,这些系统可能被索引为弹性搜索、批处理系统(如 Hadoop)或任何类型的数据库。
执行 Kafka 连接有两种方法:独立和分布式。但是,操作员仅支持 OpenShift 中的分布式模式。这不是限制,因为建议在生产环境中设置独立模式的 Kafka 分发。
Kafka 连接器使用独立于卡夫卡代理的环境,在 OpenShift Kafka 连接API 上运行在分离的窗格中。
在此示例中,我们将使用源连接器我们需要这个令牌在 OpenShift 上生成一个秘密,以卡夫卡连接可以接收来自电报的消息。要创建此机器人,请参阅文章 –机器人:开发人员简介。
执行此演示所需的文件位于 GitHub 上。单击此处开始下载。这些文件有一个数字,用于标识本文中它们的使用顺序。任何人可以下载并复制此演示。
让我们开始
第一步是在 OpenShit 上部署 AMQ 流。为此,请使用红帽网站上提供的 Strimzi 运算符。要下载的文件的链接是”红帽 AMQ 流 1.4.1 开放移位安装和示例文件“。
如果您愿意,我生成了一个包,该运算符也可在GitHub上提供。
使用以下命令在 OpenShift 上安装 AMQ 流 (卡夫卡)。
$oc应用-f./操作员/
$oc应用-f./卡夫卡。亚姆尔
我们做了什么?首先,我们创建了一个名为”kafkaproject”的项目,并部署了 Strimzi 运算符。操作员完成后,我们通过 kafka.yaml 模板部署 AMQ 流。
这些命令的结果是波纹管,
下一步是使用电报访问令牌生成 Openshift 密钥。创建属性文件,请参阅下面的示例。我选择了”电报凭据.属性”文件名。随意选择文件名1px;”[令牌]1011765240:=AAG-PdMojD1pZWUpNySa8rHDjxm3CVyqTxd
创建文件电报凭据.yaml 并将文件电报凭据的基64表示形式。
xxxxxxx
apiVersionv1
电报凭据。属性: ##BASE64 电报-凭据。属性*4善良的秘密
5元数据:
6名称电报-凭据
7命名空间卡夫卡项目
8类型不透明
使用以下命令创建机密并部署 Kafka 连接。使用 RHEL 版本进行引用时,kafka-connect.yaml 类似于执行连接分布式/4 电报凭据.yaml
$ oc 应用 -f ./5-kafka-connect.yaml"数据朗="文本/x-sh"*xxxxxxx
11$ oc-f
2$ oc-f ./5 卡夫卡连接.yaml
请注意,在 OpenShift 上创建了一个新窗格。
部署 Kafka 连接后,我们需要通知参数以连接到电报。为此,我们使用文件 6电报连接器.如下所示:
纯文本
Ⅹ1apiVersionkafka.斯特里姆齐
1px;"[类型:卡夫卡连接器
3元数据:
4名称电报-连接器
5标签:
6斯特里姆齐。io/群集我的-连接-群集
7规格:
8类组织。阿帕奇.骆驼。卡夫卡连接器。骆驼源连接器
9配置:11键。转换器组织。阿帕奇.卡夫卡.连接。存储。字符串转换器
12值.转换器组织。阿帕奇.卡夫卡.连接。存储。字符串转换器
13骆驼。源.卡夫卡.主题电报-主题
14骆驼。源.url电报:机器人
15骆驼。组件.电报。授权令牌$=文件:/选择/卡夫卡/外部-配置/电报-凭据/电报-凭据
yaml "数据朗="文本/x-sh"|
xxxxxxx
11-f6-电报连接器
完成后,如果凭据正确,则发送到您的机器人的任何消息将由Kafka Connect接收,并保存在一个名为"电报主题"的主题中,该主题在属性camel.source.kafka.主题中定义为文件6-电报连接器.yaml。请注意如何从属性camel.组件.telegram.授权令牌中的机密装载 API 令牌。
你可以去电报应用程序和机器人交谈,在此示例中,我创建了一个称为
@amqstreams
的机器人。在 Kafka 主题电报主题上运行接收器以查看发送到机器人的消息。要使用主题上的消息,我们可以使用以下命令:
壳
xxxxxxx
11-ti--图像=strimzi/kafka:0.16.0-卡夫卡-2.4.0 |
2--rm=true--重新启动=从不 |
3--垃圾箱/卡夫卡控制台-消费者
1px;"[-- 引导-服务器我的群集-卡夫卡-引导:9092 ]
5--主题电报主题 |
6--从开始
这里需要注意的一个很好的点是属性camel.source.url。在内部,当我们提供值,电报机器人,属性,连接器创建骆驼路线使用骆驼电报组件。
有很多连接器可用于卡夫卡康内特,在我们的动手,我们使用骆驼连接器,这一个允许我们使用阿帕奇骆驼的所有权力在一起卡夫卡连接。在此示例中,我们没有编写任何代码。但是,如有必要,我们可以创建自定义路由以连接到任何内容,并使用此处使用的相同步骤将 dada 放在 Apache Kafka 上。
最终注意事项
卡夫卡连接是卡夫卡生态系统的有力成员。在本文中,我展示了一个简单的集成,但是,Kafka Connect允许我们与许多系统甚至其他消息代理进行交互"
Comments are closed.