# Azure Event Hubs

Azure Event Hub (opens new window) 是一个用于数据摄取的实时托管事件流平台。EMQX 与 Azure Event Hub 的集成为用户在高吞吐量情况下提供了可靠的数据传输和处理能力。目前,EMQX 支持使用 SASL/PLAIN 身份验证、通过与 Kafka 协议兼容的 Apache Kafka 终端点进行 Azure Event Hub 集成。

提示

EMQX 企业版功能。EMQX 企业版可以为您带来更全面的关键业务场景覆盖、更丰富的数据集成支持,更高的生产级可靠性保证以及 24/7 的全球技术支持,欢迎免费试用 (opens new window)

前置准备

# 功能清单

# 快速开始

本节介绍了如何将数据通过数据桥接流入或流出 Azure Event Hubs,涵盖了诸如如何设置 Azure Event Hub、如何创建桥接器和转发数据到桥接器的规则,以及如何测试数据桥接器和规则等主题。

# 设置 Azure Event Hubs

为了使用 Azure Event Hub 数据集成,必须在 Azure 账户中设置命名空间和事件中心。以下 Azure 官方文档详细介绍了如何进行设置。

# 创建 Azure Event Hubs 数据桥接

本节演示如何通过 Dashboard 创建 Azure Event Hubs 生产者数据桥接。

  1. 进入 EMQX Dashboard,点击集成 -> 数据桥接

  2. 点击页面右上角的创建

  3. 创建数据桥接页面,点击选择 Azure Event Hubs,然后点击下一步

  4. 为数据桥接输入一个名称。名称应为大小写字母和数字的组合。

  5. 配置连接信息。

    • 引导主机:输入命名空间的主机名。默认端口为 9093。其他字段按实际情况设置。
    • 连接字符串:输入命名空间的连接字符串。可以在命名空间共享访问策略的“连接字符串 - 主键”中找到。有关详细信息,请参阅 获取事件中心连接字符串 (opens new window)
    • 启用 TLS:连接到 Azure Event Hub 时默认启用 TLS。有关 TLS 连接选项的详细信息,请参阅 外部资源访问的 TLS
  6. 配置数据桥接信息。

    • 事件中心名称:输入要使用的事件中心的名称。注意:此处不支持变量。
    • Azure Event Hub 头部:输入一个占位符,作为将在发布到 Azure Event Hub 时添加到消息中的消息标头。
    • Azure Event Hub 头部值编码模式:选择消息标头的值编码模式;可选值为 nonejson
    • 额外的 Azure Event Hub 头部信息:您可以点击添加为 Azure Event Hub 消息标头提供更多的键值对。
    • 消息键:事件中心消息键。在此处插入一个字符串,可以是纯字符串或包含占位符(${var})的字符串。
    • 消息值:事件中心消息值。在此处插入一个字符串,可以是纯字符串或包含占位符(${var})的字符串。
    • 消息时间戳:指定要使用的时间戳类型。
  7. 高级设置(可选):根据业务需求设置 最大批次字节数所需确认分区策略等。

  8. 在点击创建之前,您可以点击测试连接测试桥接是否能够连接到 Azure Event Hub 服务器。

  9. 点击创建,系统将提示您创建关联规则。

    对于 Azure Event Hub 生产者数据桥接,点击创建规则创建关联规则。有关详细操作步骤,请参阅 为 Azure Event Hub 生产者数据桥接创建规则

    提示

    创建规则允许对与规则匹配的 Azure Event Hub 消息进行进一步的转换和过滤,然后将其转发到其他规则操作,如不同的桥接。有关创建规则的更多信息,请参阅规则

现在,Azure Event Hubs 数据桥接应该在数据桥接列表(集成 -> 数据桥接)中显示,资源状态已连接

# 创建 Azure Event Hubs 生产者数据转发规则

至此您已经完成数据桥接创建流程,接下来将继续创建一条规则来指定需要写入的数据:

  1. 转到 Dashboard 数据集成 -> 规则页面

  2. 点击页面右上角的创建。

  3. 输入规则 ID,例如 my_rule

  4. 在 SQL 编辑器中输入规则,例如我们希望将 t/# 主题的 MQTT 消息存储至 Azure Event Hub,可通过如下规则实现:

    注意:如果要自定义 SQL 语句,请确保 SELECT 字段包含数据桥接中所需的所有字段。

SELECT
  *
FROM
  "t/#"
1
2
3
4
  1. 点击添加动作按钮,在下拉框中选择使用数据桥接转发选项,选择先前创建好的 Azure Event Hubs 数据桥接。

  2. 点击添加按钮确认添加动作。

  3. 点击最下方创建按钮完成规则创建。

至此您已经完成整个创建过程,可以前往 数据集成 -> Flows 页面查看拓扑图,此时应当看到 t/# 主题的消息经过名为 my_rule 的规则处理,处理结果交由 Azure Event Hub 进行存储。

# 测试数据桥接和规则

您可以使用 MQTTX (opens new window) 来模拟客户端向 EMQX 发送 MQTT 消息来测试数据桥接和规则的运行。

  1. 使用 MQTTX 向 t/1 主题发布消息:
   mqttx pub -i emqx_c -t t/1 -m '{ "msg": "Hello Azure Event Hub" }'
1
  1. 数据桥接页面点击桥接名称查看数据桥接运行统计,命中、发送成功次数应当 +1。

  2. 在 Azure 门户仪表板中检查是否将消息写入配置的事件中心。使用任何兼容 Kafka 的消费者,检查消息是否被写入配置的事件中心。有关使用 Kafka CLI 的更多信息,请参阅 Use the Kafka CLI to Send and Receive Messages to/from Azure Event Hubs for Apache Kafka Ecosystem (opens new window)