跳转到主要内容
Apache Kafka 端口允许通过向 Apache Kafka 推送数据或从 Apache Kafka 拉取数据,将 Apache Kafka 集成到数据流中。

核心功能

  • 具有生产和消费能力的实时消息流
  • 多种身份验证方案,包括 SASL 和 Kerberos
  • 基于主题的消息组织与消费者组管理
  • 可配置的读取时长,用于控制等待消息到达的时间
按照以下步骤将知行之桥连接到 Apache Kafka。

前提条件

要与 Apache Kafka 建立连接,用户至少必须具备:
  • 一个 Apache Kafka 环境,其中包含有效的 Apache Kafka 主机服务器和服务器管理器(broker,通常是 Zookeeper 或 KRaft)。
  • 从 Apache Kafka 主机到包含目标主题的集群中所有 Apache Kafka 服务器和服务器管理器的网络连接。
  • 在 Apache Kafka 中创建的主题,用于向服务器发送消息和从服务器接收消息。
  • 从知行之桥到 Apache Kafka 服务器的清晰网络路径。
知行软件不提供 Apache Kafka 服务器或服务器管理器的创建或配置方面的设置协助或支持。有关 Apache Kafka 环境设置的信息,请参阅 Apache Kafka 文档。

建立连接

要允许知行之桥使用 Apache Kafka 中的数据,必须先建立到 Apache Kafka 的连接。有两种方法可以建立此连接:
  • 将 Apache Kafka 端口添加到工作流。然后,在 设置 选项卡中,单击连接下拉列表旁边的 创建
  • 打开知行之桥系统设置 页面,然后打开 连接 选项卡。点击 添加,选择 Apache Kafka,然后点击 下一步
  • 仅在第一次创建连接时才需要登录过程。
  • 与 Apache Kafka 的连接可以跨多个 Apache Kafka 端口重复使用。

输入连接设置

打开新的连接对话框后,按照以下步骤操作:
  1. 提供所需信息:
    • 名称 — 连接的静态名称。
    • 类型 — 始终设置为 Apache Kafka。
    • 身份验证方案 — 用于连接的授权方案。选项有 AutoNonePlainScramKerberos
    • 用户 —(除 None 之外的所有方案)用于登录的 Apache Kafka 用户名。
    • 密码 — 上面输入用户的密码。
    • Bootstrap Servers — 用于建立到 Apache Kafka 初始连接的主机/端口对。如果连接到 Confluent Cloud,可以在集群设置中找到此信息。
  2. 可选择点击 高级 以打开高级连接设置的下拉菜单。在大多数情况下,不需要这些设置。
  3. 点击 测试连接 以确保知行之桥可以使用提供的信息连接到 Apache Kafka。如果发生错误,请检查所有字段并重试。
  4. 点击 添加连接 以完成连接。
  5. 在端口配置窗格的 连接 下拉列表中,选择新建的连接。
  6. Topic 字段中,输入要作为目标的 Apache Kafka 主题。
  7. 点击 保存更改
高级 选项卡上还有特定于数据源的身份验证和配置选项。此文档并未描述所有这些选项,但你可以在知行软件网站的 在线帮助文件 页面找到数据源的详细信息。

选择操作

与 Apache Kafka 建立连接后,必须选择 Apache Kafka 端口应执行的操作。下表概述了每个操作及其在知行之桥工作流中的位置:

生产

生产 操作将输入数据发送到 Apache Kafka。此数据可以来自其他端口,也可以来自你手动上传到 Apache Kafka 端口输入选项卡的文件。Apache Kafka 端口会将输入数据发送到你在 配置 部分的 Topic 字段中输入的主题。

高级消息键和分区配置

Apache Kafka 端口在向 Kafka 主题生产消息时支持指定消息键和分区,从而在多分区环境中提供对消息分发和排序的细粒度控制。
消息键配置
可以使用知行之桥消息头 MessageKey 来指定 Kafka 消息键,或者通过 高级 选项卡中高级设置部分的 Key Header 字段来告知知行之桥使用输入消息上的哪个标头来确定消息键。此键决定消息发送到哪个分区,并确保分区内的消息排序。
分区配置
可以使用以下可选设置来控制哪个分区接收消息:
  • Partition Header: 定义端口用于设置分区的消息头。默认标头名称为 MessagePartition,但可以使用包含所需分区的任何消息头来覆盖它。
  • Partition:高级 选项卡的高级设置部分提供分区编号。
  • 如果同时存在分区标头和特定分区编号,则消息头优先。
  • 如果既没有指定消息键也没有指定分区,Kafka 将在目标主题的所有分区中分发消息。

消费

消费 操作会针对你在 配置 部分的 Topic 字段中输入的主题检查 Apache Kafka 队列中的消息。你必须为此操作设置以下字段:
  • Consumer Group ID:指定端口创建的消费者应该属于哪个组。
  • Read Duration:端口等待消息到达的时间长度(以秒为单位)。无论收到的消息数量如何,端口都将等待整个持续时间。
通过 消费 端口处理的数据进入输出选项卡,并向下传输到知行之桥工作流的下一个步骤。

其他连接配置

高级选项卡

高级设置

消息

日志

其他

其他设置用于特定用例。

自动化选项卡

自动化设置

与端口自动处理文件相关的设置。

性能

与端口资源分配相关的设置。

警报选项卡

与配置警报和服务级别协议 (SLA) 相关的设置。

端口电子邮件设置

在执行 SLA 之前,需要设置用于通知的电子邮件警报。点击 配置警报 会打开一个新的浏览器窗口并转到设置页面,你可以在其中设置系统范围的警报。有关更多信息,请参阅警报

服务级别协议 (SLA) 设置

SLA 允许你配置工作流中的端口预期发送或接收的数量,并设置期望满足该数量的时间范围。当 SLA 未满足时,知行之桥会发送电子邮件提醒用户,并将 SLA 标记为 At Risk,这意味着如果 SLA 很快仍未满足,它将被标记为 Violated。这让用户有机会介入并确定 SLA 未满足的原因,并采取适当措施。如果在风险期结束时 SLA 仍未满足,则 SLA 会被标记为违反,并再次通知用户。 要定义 SLA,请点击 添加预期数量条件
  • 如果端口具有单独的发送和接收操作,请使用单选按钮指定 SLA 适用于哪个方向。
  • Expect at least 设置为你期望处理的最小交易数(数量),然后使用 Every 字段指定时间范围。
  • 默认情况下,SLA 每天生效。要更改此设置,请取消选中 Everyday,然后选中所需的星期几。
  • 使用 And set status to ‘At Risk’ 指定 SLA 应何时标记为存在风险。
  • 默认情况下,只有当 SLA 违反时才发送通知。要更改此设置,请勾选 Send an ‘At Risk’ notification
以下示例显示了一个 SLA 配置:该端口预计在周一至周五每天接收 1000 个文件。如果在时间段结束前 1 小时仍未收到 1000 个文件,则会发送风险通知。 SLA 配置示例
如有必要,可以关闭 SLA 警报。这在维护时段可能很有用。点击导航栏上的 设置,然后导航到 警报 > 常规警报。点击平板和铅笔图标进行编辑,并取消勾选 SLA 警报 设置。

在文件命名策略中使用宏可以提高组织效率,并有助于理解数据上下文。通过在文件名中加入宏,可以动态包含标识符、时间戳和标头信息等相关信息,为每个文件提供有价值的上下文。这有助于确保文件名反映对组织很重要的详细信息。 知行之桥支持以下宏,它们都使用以下语法:%Macro%

示例

某些宏(如 %Ext% 和 %ShortDate%)不需要参数,但其他宏需要参数。所有带参数的宏都使用以下语法:%Macro:argument% 以下是一些带参数宏的示例:
  • %Header:headername%:其中 headername 是消息上的标头名称。
  • %Header:mycustomheader% 解析为输入消息上设置的 mycustomheader 标头值。
  • %Header:ponum% 解析为输入消息上设置的 ponum 标头值。
  • %RegexFilename:pattern%:其中 pattern 是正则表达式模式。例如,%RegexFilename:^([\\w][A-Za-z]+)% 匹配并解析为文件名中的第一个单词,且不区分大小写(test_file.xml 解析为 test)。
  • %Vault:vaultitem%:其中 vaultitem保管库中的项目名称。例如,%Vault:companyname% 解析为保管库中存储的 companyname 项的值。
  • %DateFormat:format%:其中 format 是接受的日期格式(详情请参阅日期格式示例)。例如,%DateFormat:yyyy-MM-dd-HH-mm-ss-fff% 解析为文件上的日期和时间戳。
还可以创建更复杂的宏,如以下示例所示:
  • 在一个文件名中组合多个宏:%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%
  • 在宏外包含文本:MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%
  • 在宏内包含文本:%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%