配置客户端应用程序以连接事件端点

配置客户端应用程序,以便连接到事件网关来访问订阅。

图 1。 示意图,显示在配置客户端应用程序连接到事件端点时会发生什么。
配置客户端应用程序以连接到事件端点。

使用集成代理创建用于连接客户端的参考代码

集成代理可帮助您创建 Event Endpoint Management 示例代码,用于将客户端连接到事件端点。 在目录中订阅某个端点后,请点击 “开始使用 ”,并按照说明生成可直接用于应用程序的代码。

此选项在您希望避免手动配置步骤时非常有用。

配置客户端

事件网关管理对 Event Endpoint Management 中的事件端点的访问。 使用标准 Kafka 客户端配置选项,配置客户端应用程序以连接到事件网关

提示: 要创建用于将应用程序连接到事件端点的即用型代码,您可以在订阅事件端点时使用集成代理。

向客户提供配置设置的方式因客户而异。 不过,以下设置对每个客户都是通用的:

  • Bootstrap servers:可以在服务器表的该事件端点的目录页面中找到提供对事件端点的访问的事件网关服务器地址集。 如果使用多个地址,请用逗号分隔。
  • Security mechanism:如果在订阅中使用用户名和密码,则设置为 SASL_SSL 。 如果使用 mTLS 时没有用户名和密码,则设置为 SSL
  • SSL configuration事件网关仅向客户端提供一个通过 TLS 加密的端点供其连接。 对于每个网关端点地址,服务器证书均可从目录详情页面下载(格式为 PEM )。 配置客户端以信任此证书。
  • SASL 凭证:如果 SASL_SSL 被指定为 SASL mechanism ,则用订阅事件源时获取的值设置 SASL usernameSASL password
  • Topic name:您希望应用程序使用的事件端点名称。 该名称会显示在目录表的主题名称列下,并在查看有关事件终点的更多信息时作为目录详细页面的标题。
若配置多个使用相同订阅和相同组ID的客户端,则必须使用相同的客户端ID。 群组ID和客户端ID不必匹配,但共享同一订阅的每个客户端都必须重复使用相同的值对。 例如:
myClientApplication1: <GROUP_ID>=BOB, <CLIENT_ID>=ABC
myClientApplication2: <GROUP_ID>=BOB, <CLIENT_ID>=ABC
在同一订阅和组ID内使用不同的客户端ID值可能会导致连接失败或运行时错误

使用代码加速器测试事件终点

在复杂应用程序中使用下载的事件端点配置之前,可以使用代码加速器示例测试事件端点配置。

消费者事件端点 kcat 测试示例

kcat 是用于 Kafka 的开源测试工具。 请按照以下步骤使用 kcat 代码加速器样本测试 SASL 安全事件端点:

  1. 在能够访问您的事件网关的系统上安装 kcat
  2. 登录 Event Endpoint Management 用户界面。
  3. 在导航窗格中,单击目录
  4. 选择要测试的事件端点。
  5. 若您尚未订阅此事件端点 请订阅以获取 SASL 用户名和密码。
  6. 展开代码加速器部分。
  7. 切换到 kcat 选项卡。
  8. 复制 kcat 示例命令并替换占位变量:
    • <GROUP_ID> - 用唯一字符串替换。
    • <CLIENT_ID> - 用唯一字符串替换。
    • <CREDENTIALS_USERNAME> - 设置为您的 SASL 用户名。
    • <CREDENTIALS_PASSWORD> - 设置为 SASL 密码。
    注意: 设置客户端 ID 时,请在共享订阅和组 ID 的所有客户端中重复使用相同的值。
  9. 运行 kcat 示例命令。 例如:
     kcat -J -G group1 \
      -b "grp1-gwy1-ibm-egw-example.apps.ibm.com:443,grp1-gwy1-ibm-egw-example.ibm.com:443,grp1-gwy1-ibm-egw-example.ibm.com:443" \
      -X client.id=client1 \
      -X security.protocol="SASL_SSL" \
      -X ssl.ca.pem="-----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----" \
      -X sasl.mechanisms="PLAIN" \
      -X sasl.username="eem-7f0c68e8-3c40-432b-a926-921080c9661d" \
      -X sasl.password="f742c545-0ce2-4958-a801-114f242c3d3e" \
      "noop"; : # Note: in some versions of kcat the '-t' flag must precede the topic name
    kcat 命令输出会显示事件端点产生的事件。 例如:
    % Waiting for group rebalance
    % Group group1 rebalanced (memberid client1-730ea6d6-6968-4a8b-9900-8652d4f5e310): assigned: noop [0]
    % Reached end of topic noop [0] at offset 15
    {"topic":"noop","partition":0,"offset":15,"tstype":"create","ts":1754311306587,"broker":1,"key":null,"payload":"Sample message value"}
    % Reached end of topic noop [0] at offset 16
    {"topic":"noop","partition":0,"offset":16,"tstype":"create","ts":1754311308412,"broker":1,"key":null,"payload":"Sample message value"}% Reached end of topic noop [0] at offset 17