将 MQTT 数据传输到 Apache Kafka
Apache Kafka 数据桥接实现了 EMQX 客户端消息和事件与 Apache Kafka (包括 Confluent) 的桥接,能够提供 EMQX 与企业应用之间高性能、高可靠的数据集成,有效降低应用复杂度并提升扩展性。同时,EMQX 与 Apache Kafka 的集成提供了极高的数据吞吐能力,支持 Apache Kafka 的 SASL/SCRAM、SASL/GSSAPI 等多种安全认证方式以及 TLS 连接,是物联网数据集成首选方案之一。
Apache Kafka 数据桥接涉及两种桥接角色:生产者(将数据发送到 Kafka )和消费者(将数据从 Kafka 消费下发)。EMQX 支持创建任何一种角色的桥接。
TIP
EMQX 企业版功能。EMQX 企业版可以为您带来更全面的关键业务场景覆盖、更丰富的数据集成支持,更高的生产级可靠性保证以及 24/7 的全球技术支持,欢迎 免费试用 。
功能清单
快速开始
本节将带您创建一个 Kafka 服务器以及 Kafka 主题,然后在 EMQX 创建 Kafka 生产者或消费者的数据桥接,之后再通过为 Kafka 生产者创建一条规则来将数据转发至 Kafka,以验证该数据桥接是否正常工作。
TIP
本教程假定 EMQX 与 Kafka 均在本地运行,如您在远程运行 EMQX 及 Kafka,请根据实际情况调整相应配置。
安装 Kafka
以 macOS 为例,安装并启动 Apache Kafka:
更多详细内容请参考 Kafka Quick Start 。
创建 Kafka 主题
在 EMQX 创建数据桥接前,必须首先在 Kafka 中创建好所需主题。使用下面的命令在 Kafka 中创建名为
testtopic-in
(用于生产者角色)与
testtopic-out
(用于消费者角色)的两个主题:
创建 Kafka 数据桥接
本节将通过 Dashboard 演示如何创建到 Kafka 生产者或消费者的数据桥接。
-
转到 Dashboard 数据集成 -> 数据桥接 页面。
-
点击页面右上角的 创建 。
-
在 数据桥接类型 中选择 Kafka ,点击 下一步 。
-
在 桥接角色 中选择 生产者 或 消费者 。
-
点击 创建 前,您可点击 测试连接 按钮确保能连接到 Kafka 服务器。
-
点击 创建 ,将提示是否使用该数据桥接创建规则。
- 对于 Kafka 生产者桥接,点击 创建规则 或者到 Dashboard 数据集成 -> 规则页面 [创建数据转发规则](#创建 Kafka 生产者数据转发规则)。
- 对于 Kafka 消费者桥接,创建关联的规则不是必需的。没有规则的情况下消息也可以发布到 主题映射 中设置的 MQTT 主题。
提示
创建关联的规则可以通过规则进一步处理 Kafka 消息,然后再发送到 MQTT 客户端。有关创建规则的更多信息,请参阅 规则引擎 。
创建 Kafka 生产者数据转发规则
至此您已经完成数据桥接创建流程,接下来将继续创建一条规则来指定需要写入的数据:
-
转到 Dashboard 数据集成 -> 规则页面 。
-
点击页面右上角的创建。
-
输入规则 ID,例如
my_rule
。 -
在 SQL 编辑器中输入规则,例如我们希望将
t/#
主题的 MQTT 消息存储至 Kafka,可通过如下规则实现:注意:如果要自定义 SQL 语句,请确保
SELECT
字段包含数据桥接中所需的所有字段。