# 数据转发至Kafka存储
#### 场景说明
对于设备上报的数据，可以选择让平台将设备上报数据推送给应用服务器，由应用服务器进行保存；还可以选择让平台将设备上报数据转发给分布式消息服务（Kafka），由Kafka进行存储。
本示例为将所有设备上报的数据转发至Kafka存储。
#### 购买Kafka实例
1. 登录华为云网站，访问[分布式消息服务Kafka](https://www.huaweicloud.com/product/dmskafka.html)。
2. 单击"进入控制台"进入分布式消息服务管理控制台。
3. 单击右上角"购买Kafka实例"，根据需求选择实例规格与[配置安全组](https://support.huaweicloud.com/kafka_faq/kafka-faq-180604024.html)后，单击"立即购买"。
   图1购买Kafka实例
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001592668506.png "点击放大")
   
 
#### 配置设备接入服务
在设备接入服务中创建产品模型、注册设备并设置数据转发规则，实现当设备上报数据时将数据转发至Kafka。
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 在左侧导航栏选择"规则\>数据转发"，单击左上角的"创建规则"。
3. 参考下表参数说明，填写规则内容。以下参数取值仅为示例，您可参考[操作步骤](https://support.huaweicloud.com/usermanual-iothub/iot_01_0024.html#ZH-CN_TOPIC_0264671221__section1919615255459)创建自己的规则，填写完成后单击"创建规则"。
   
   | 参数名    | 参数说明                      |
   |:---|:---|
   | 规则名称  | **参数说明：**自定义，如iotda-kafka。  |
   | 规则描述  | **参数说明：**自定义，如数据转发至Kafka存储。 |
   | 数据来源   | **参数说明：**选择"设备属性"。        |
   | 触发事件  | **参数说明：**自动匹配"设备属性上报"。     |
   | 资源空间 | **参数说明：**选择"所有资源空间"。       |
      
   图2新建属性上报流转规则-数据转发至Kafka   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001981583633.png "点击放大") 
4. 单击"设置转发目标"页签，单击"添加"，设置转发目标。
   
   | 参数名        | 参数说明                                                                                                                                                                                    |
   |:---|:---|
   | 转发目标    | **参数说明：**选择"分布式消息服务(kafka)"                                                                                                                                                           |
   | 区域        | **参数说明：**选择Kafka服务的所在区域。若未授权访问此区域的服务，请根据界面提示，配置云服务访问授权。                                                                                                                                |
   | 对接地址      | **参数说明：** 参考[连接已开启SASL的Kafka专享版实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180801001.html#section0)获取对接地址。设备接入基础版和标准版实例只支持公网接入Kafka，IoTDA企业版实例支持同VPC同子网下Kafka实例私网接入。 |
   | 主题        | **参数说明：** 自定义主题，参考[创建Kafka Topic](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604018.html)。                                                                             |
   | SASL认证     | **参数说明：** 若开启SASL认证，请填写您在[购买Kafka实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html#section2)中所选安全协议、SASL认证机制以及所填的SASL用户名和密码。                                  |
   | Kafka安全协议  | **参数说明：** 选择您在[购买Kafka实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html#section2)中所启用的kafka安全协议。                                                            |
   | SASL认证机制 | **参数说明：** 选择您在[购买Kafka实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html#section2)中所开启的SASL认证机制。                                                               |
   | SASL用户名    | **参数说明：** 填写您在[购买Kafka实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html#section2)中输入的SASL用户名。                                                                 |
   | 密码         | **参数说明：** 填写您在[购买Kafka实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html#section2)中输入的密码。                                                                    |
      
   图3新建转发目标-转发至Kafka   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000002356483049.png "点击放大") 
5. 单击"启动规则"，激活配置好的数据转发规则。
   图4启动规则-转发至Kafka   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001950393364.png "点击放大") 
 
#### 验证操作
- 您可以使用配置设备接入服务时注册的真实设备接入平台，上报任意数据。
- 您也可以使用模拟器模拟设备上报数据，操作方法请参考[在线开发MQTT协议的智慧路灯](https://support.huaweicloud.com/bestpractice-iothub/iot_bp_00016.html)。
期望结果：
登录[Kafka管理控制台](https://console.huaweicloud.com/dms/)，单击Kafka实例名进入实例管理页面后，在"消息查询"页面可以查看到设备上报的数据。
图5查看Kafka消息-Kafka   
![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001993108381.png "点击放大")
您也可以使用Kafka的API（[查询消息](https://support.huaweicloud.com/api-kafka/ShowInstanceMessages.html)）进行文件读取。
