第 15 章 连接到 Kafka
Apache Kafka 是一个分布式流平台,可用于获取和发布数据。在集成中,您可以从您指定的 Kafka 主题订阅数据,或将数据发布到您指定的 Kafka 主题。要做到这一点,请启用 Fuse Online 来发现集群中的 Kafka 代理。然后,创建到 Kafka 的连接并添加到集成流的连接。详情包括在以下主题中:
15.1. 启用 Kafka 代理/AMQ Streams 的自动发现
在集成中,如果您计划连接到一个 AMQ Streams 实例的 Kafka 代理,请在创建 Kafka 连接前启用此类代理的自动发现。这样可以更轻松地创建 Kafka 连接,因为 Fuse Online 可以提供配置连接所需的 Kafka 代理详情。
要启用自动发现,您可以授予 OpenShift 用户帐户特权,以允许该帐户查看集群中的资源。您指定的特定权限可让帐户发现不同的代理子集。
对于 OpenShift 4.5,不支持启用 Kafka 代理的自动发现。要连接到 Kafka 代理,您必须知道 Kafka 代理的 URI ( host:port 格式)。
先决条件
- 您在 OCP 现场运行 Fuse Online。
-
已安装
oc客户端工具,并将其连接到要在其中启用 Kafka 代理的自动发现集群。 - 有集群管理权限。
- 要在集成中连接到的 Kafka 代理(AMQ Streams 实例)会在与 Fuse Online 相同的集群中安装。
流程
使用具有集群管理权限的帐户登录 OpenShift。例如:
$ oc login -u admin -p admin
确保当前项目是 Fuse Online 运行的项目。要查看当前项目,请调用以下命令:
$ oc project
授予向
oc用户帐户启用集群中 Kafka 代理的访问权限的权限。如何配置集群决定了您需要授予的权限。例如,对于 minishift 上的 Strimzi 集群,您可以执行以下操作:创建一个集群角色,可访问集群中的 Kafka/Strimzi 资源。在以下示例中,
kafkas.kafka.strimzi.io-view是新角色的名称:oc create clusterrole kafkas.kafka.strimzi.io-view --verb=get,list --resource=kafkas --resource=crd
将此集群角色添加到
oc用户。在以下示例中,syndesis-server是oc用户帐户的名称:oc adm policy add-cluster-role-to-user kafkas.kafka.strimzi.io-view -z syndesis-server
结果
在 Fuse Online 中,当您创建 Kafka 连接时,连接配置页面会显示可用的 Kafka 代理。您可以选择要连接访问的代理。