Azure Event Hubs
Azure Event Hub 是一个用于数据摄取的实时托管事件流平台。EMQX 与 Azure Event Hub 的集成为用户在高吞吐量情况下提供了可靠的数据传输和处理能力。目前,EMQX 支持使用 SASL/PLAIN 身份验证、通过与 Kafka 协议兼容的 Apache Kafka 终端点进行 Azure Event Hub 集成。
TIP
EMQX 企业版功能。EMQX 企业版可以为您带来更全面的关键业务场景覆盖、更丰富的数据集成支持,更高的生产级可靠性保证以及 24/7 的全球技术支持,欢迎免费试用。
功能清单
快速开始
本节介绍了如何将数据通过数据桥接流入或流出 Azure Event Hubs,涵盖了诸如如何设置 Azure Event Hub、如何创建桥接器和转发数据到桥接器的规则,以及如何测试数据桥接器和规则等主题。
设置 Azure Event Hubs
为了使用 Azure Event Hub 数据集成,必须在 Azure 账户中设置命名空间和事件中心。以下 Azure 官方文档详细介绍了如何进行设置。
- 什么是适用于 Apache Kafka 的 Azure 事件中心
- 快速入门:使用 Azure 门户创建事件中心
- 快速入门:使用 Azure 事件中心和 Apache Kafka 流式传输数据
- 遵循“连接字符串”说明,这是 EMQX 用于连接的方式。
- 获取事件中心连接字符串
创建 Azure Event Hubs 数据桥接
本节演示如何通过 Dashboard 创建 Azure Event Hubs 生产者数据桥接。
进入 EMQX Dashboard,点击集成 -> 数据桥接。
点击页面右上角的创建。
在创建数据桥接页面,点击选择 Azure Event Hubs,然后点击下一步。
为数据桥接输入一个名称。名称应为大小写字母和数字的组合。
配置连接信息。
- 引导主机:输入命名空间的主机名。默认端口为
9093
。其他字段按实际情况设置。 - 连接字符串:输入命名空间的连接字符串。可以在命名空间共享访问策略的“连接字符串 - 主键”中找到。有关详细信息,请参阅 获取事件中心连接字符串。
- 启用 TLS:连接到 Azure Event Hub 时默认启用 TLS。有关 TLS 连接选项的详细信息,请参阅 外部资源访问的 TLS。
- 引导主机:输入命名空间的主机名。默认端口为
配置数据桥接信息。
- 事件中心名称:输入要使用的事件中心的名称。注意:此处不支持变量。
- Azure Event Hub 头部:输入一个占位符,作为将在发布到 Azure Event Hub 时添加到消息中的消息标头。
- Azure Event Hub 头部值编码模式:选择消息标头的值编码模式;可选值为
none
或json
。 - 额外的 Azure Event Hub 头部信息:您可以点击添加为 Azure Event Hub 消息标头提供更多的键值对。
- 消息键:事件中心消息键。在此处插入一个字符串,可以是纯字符串或包含占位符(${var})的字符串。
- 消息值:事件中心消息值。在此处插入一个字符串,可以是纯字符串或包含占位符(${var})的字符串。
- 消息时间戳:指定要使用的时间戳类型。
高级设置(可选):根据业务需求设置 最大批次字节数、所需确认 和 分区策略等。
在点击创建之前,您可以点击测试连接测试桥接是否能够连接到 Azure Event Hub 服务器。
点击创建,系统将提示您创建关联规则。
对于 Azure Event Hub 生产者数据桥接,点击创建规则创建关联规则。有关详细操作步骤,请参阅 为 Azure Event Hub 生产者数据桥接创建规则。
TIP
创建规则允许对与规则匹配的 Azure Event Hub 消息进行进一步的转换和过滤,然后将其转发到其他规则操作,如不同的桥接。有关创建规则的更多信息,请参阅规则。
现在,Azure Event Hubs 数据桥接应该在数据桥接列表(集成 -> 数据桥接)中显示,资源状态为 已连接。
创建 Azure Event Hubs 生产者数据转发规则
至此您已经完成数据桥接创建流程,接下来将继续创建一条规则来指定需要写入的数据:
转到 Dashboard 数据集成 -> 规则页面。
点击页面右上角的创建。
输入规则 ID,例如
my_rule
。在 SQL 编辑器中输入规则,例如我们希望将
t/#
主题的 MQTT 消息存储至 Azure Event Hub,可通过如下规则实现:注意:如果要自定义 SQL 语句,请确保
SELECT
字段包含数据桥接中所需的所有字段。
SELECT
*
FROM
"t/#"
点击添加动作按钮,在下拉框中选择使用数据桥接转发选项,选择先前创建好的 Azure Event Hubs 数据桥接。
点击添加按钮确认添加动作。
点击最下方创建按钮完成规则创建。
至此您已经完成整个创建过程,可以前往 数据集成 -> Flows 页面查看拓扑图,此时应当看到 t/#
主题的消息经过名为 my_rule
的规则处理,处理结果交由 Azure Event Hub 进行存储。
测试数据桥接和规则
您可以使用 MQTTX 来模拟客户端向 EMQX 发送 MQTT 消息来测试数据桥接和规则的运行。
- 使用 MQTTX 向
t/1
主题发布消息:
mqttx pub -i emqx_c -t t/1 -m '{ "msg": "Hello Azure Event Hub" }'
在数据桥接页面点击桥接名称查看数据桥接运行统计,命中、发送成功次数应当 +1。
在 Azure 门户仪表板中检查是否将消息写入配置的事件中心。使用任何兼容 Kafka 的消费者,检查消息是否被写入配置的事件中心。有关使用 Kafka CLI 的更多信息,请参阅 Use the Kafka CLI to Send and Receive Messages to/from Azure Event Hubs for Apache Kafka Ecosystem。