Todos los productos
Search
Centro de documentos

IoT Platform:Reenvío de datos de dispositivos a servidores empresariales mediante ApsaraMQ for RocketMQ

Última actualización: Sep 03, 2026

IoT Platform reenvía los datos enviados por los dispositivos a los topics de ApsaraMQ for RocketMQ. Posteriormente, ApsaraMQ for RocketMQ envía dichos datos a sus servidores empresariales. Este tema describe cómo configurar el reenvío de datos.

Requisitos previos

  • Se ha creado una cuenta de Alibaba Cloud.

  • IoT Platform está activado.

  • ApsaraMQ for RocketMQ está activado.

    Si ApsaraMQ for RocketMQ no está activado, vaya a la página del producto ApsaraMQ for RocketMQ para activar el servicio.

  • Se ha preparado un entorno de desarrollo. En este ejemplo se utiliza un entorno de desarrollo Java compuesto por los siguientes elementos:

Contexto

Proceso de reenvío de datos

消息流转MQ

Beneficios:

  • Al conectar dispositivos a IoT Platform mediante Message Queuing Telemetry Transport (MQTT), los enlaces de transmisión de datos utilizan cifrado Transport Layer Security (TLS) para evitar la manipulación de la información. Para obtener más detalles sobre MQTT, consulte MQTT protocol specifications.

  • ApsaraMQ for RocketMQ funciona como búfer de mensajes, lo que reduce las fluctuaciones de tráfico y la carga concurrente en sus servidores empresariales.

Procedimiento

  1. Inicie sesión en la consola de IoT Platform y cree un producto y un dispositivo.

    1. En la página Overview, haga clic en All environment. En la pestaña All environment, localice la instancia que desea gestionar y haga clic en su ID o nombre.

      En este ejemplo se selecciona la región China (Shanghai).

    2. En el panel de navegación izquierdo, seleccione Devices > Products. En la página Products, haga clic en Create Product. En la página Create Product, configure los parámetros y haga clic en OK.

      En este ejemplo, el parámetro Product Name se establece en MQ_test y el parámetro Node Type en Directly Connected Device. Mantenga los valores predeterminados para el resto de los parámetros.

    3. Haga clic en View Product Details. En la página de detalles del producto, seleccione Topic Categories > Topic Category y haga clic en Edit Topic Category para crear una categoría de topic destinada al envío de datos del dispositivo.

      En este ejemplo se crea una categoría de topic denominada /{YourProductKey}/${YourDeviceName}/user/data.

    4. En el panel de navegación izquierdo, seleccione Devices > Devices. En la página Devices, haga clic en Add Device para crear un dispositivo asociado al producto MQ_test.

      En este ejemplo se crea un dispositivo llamado MQdevice.

  2. En la consola de ApsaraMQ for RocketMQ, cree un topic y un consumidor.

    1. Inicie sesión en la consola de ApsaraMQ for RocketMQ.

    2. En el panel de navegación izquierdo, haga clic en Instances. En la página Instances, haga clic en Create Instance. En este ejemplo se crea una instancia en la región China (Shanghai), con el parámetro Instance Version establecido en V4.0 y el parámetro Instance Type en Standard Edition Instance.

      Para obtener más información, consulte Create an instance.

      Importante
      • La instancia de ApsaraMQ for RocketMQ debe residir en la misma región que la instancia de IoT Platform.

      • Solo es posible reenviar flujos de datos a los topics de una instancia de ApsaraMQ for RocketMQ V4.x.

    3. En la página Instances, localice la instancia para la cual desea crear una base de datos y haga clic en su nombre.

    4. En la página Instance Details, haga clic en Create Group. En el panel Create Group, configure los parámetros y haga clic en OK.

      Establezca Delivery Order en Concurrent Delivery y defina Description como IoT device message subscription.

    5. Haga clic en Create Topic. En el panel Create Topic, establezca el parámetro Message Type en Normal Message.

      Configure los siguientes parámetros:

      • Message Type: Normal Message

      • Description: IoT device reporting data to enterprise server

    6. Cree un consumidor y verifique su estado en la consola de ApsaraMQ for RocketMQ. Asegúrese de que el consumidor se encuentre en estado Online y de que las suscripciones de los consumidores dentro del grupo sean consistentes.

      En este ejemplo se emplea un SDK TCP para enviar y recibir mensajes. Para más información sobre cómo obtener y utilizar un SDK TCP, consulte Send and subscribe to normal messages with TCP client SDKs.

      Código Java de ejemplo:

      Nota
      import com.aliyun.openservices.ons.api.Action;
      import com.aliyun.openservices.ons.api.ConsumeContext;
      import com.aliyun.openservices.ons.api.Consumer;
      import com.aliyun.openservices.ons.api.Message;
      import com.aliyun.openservices.ons.api.MessageListener;
      import com.aliyun.openservices.ons.api.ONSFactory;
      import com.aliyun.openservices.ons.api.PropertyKeyConst;
      import java.util.Properties;
      public class ConsumerTest {
          public static void main(String[] args) {
              Properties properties = new Properties();
              // The ID of the group that you created in the ApsaraMQ for RocketMQ console.
              properties.put(PropertyKeyConst.GROUP_ID, "XXX");
              // The AccessKey ID that you created in the Alibaba Cloud Management Console for identity authentication.
              properties.put(PropertyKeyConst.AccessKey, "${AccessKey}");
              // The AccessKey secret that you created in the Alibaba Cloud Management Console for identity authentication.
              properties.put(PropertyKeyConst.SecretKey, "${SecretKey}");
              // The TCP endpoint. To obtain the TCP endpoint, go to the Basic Information section of the instance details page in the IoT Platform console.
              properties.put(PropertyKeyConst.NAMESRV_ADDR,
                  "XXX");
              // Clustering subscription. This is the default mode.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
              // Broadcasting subscription.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);
              Consumer consumer = ONSFactory.createConsumer(properties);
              consumer.subscribe("iotx_test_mq", "", new MessageListener() { // Subscribe to multiple tags.
                  public Action consume(Message message, ConsumeContext context) {
                      System.out.println("Receive: " + message);
                      return Action.CommitMessage;
                  }
              });
              consumer.start();
              System.out.println("Consumer Started");
          }
      }
  3. En la consola de IoT Platform, configure una regla de reenvío de datos para la instancia con el fin de enviar la información del dispositivo hacia ApsaraMQ for RocketMQ.

    1. En el panel de navegación izquierdo, seleccione Message Forwarding > Data Forwarding.

    2. En la página Data Forwarding, haga clic en Create Rule.

      Importante

      Si aparece la página Data Forwarding de la versión más reciente, haga clic en Back to Previous Version en la esquina superior derecha. Una vez que se muestre la página Data Forwarding de la versión anterior, haga clic en Create Rule.

    3. En el cuadro de diálogo Create Data Forwarding Rule, establezca el parámetro Rule Name en MQ forwarding y el parámetro Data Type en JSON. Luego, haga clic en OK.

    4. En la página de detalles de la regla, haga clic en Write SQL Statement. En el cuadro de diálogo Write SQL Statement, configure los parámetros y haga clic en OK, tal como se muestra en la siguiente figura.

      物联网设备消息

    5. Haga clic en Add Operation. En el cuadro de diálogo Add Operation, especifique el destino al que desea reenviar los datos y haga clic en OK.

      Configure los siguientes parámetros en el cuadro de diálogo:

      • Data Destination Name: ToRocketMQ

      • Select Operation: Send data to ApsaraMQ for RocketMQ

      • Region: China (Shanghai)

      • Instance: IoT-forward-data-test

      • Authorization: AliyunIOTAccessingMQRole

    6. Vaya a la página Data Forwarding. Localice la regla MQ forwarding y haga clic en Start en la columna Actions.

      Una vez habilitada la regla, IoT Platform reenviará los datos del dispositivo al topic de ApsaraMQ for RocketMQ.

  4. Utilice un SDK de Java para simular un dispositivo, conéctelo a IoT Platform y úselo para enviar datos.

    1. Descargue el paquete de demostración desde Download Java SDK Demo y descomprímalo.

    2. Inicie IntelliJ IDEA e importe el proyecto de ejemplo denominado JavaLinkKitDemo incluido en el paquete de demostración.

    3. Especifique la siguiente información del certificado del dispositivo MQdevice en el archivo device_id.json: ProductKey, DeviceName y DeviceSecret.

    4. Modifique el topic MQTT en el archivo src\main\java\com.aliyun.alink.devicesdk.demo\MqttSample.java por el topic al que el dispositivo enviará los datos.

      En este ejemplo se utiliza el topic /{YourProductKey}/${YourDeviceName}/user/data.

      /**
       * Example of a publish operation
       */
      public void publish() {
              MqttPublishRequest request = new MqttPublishRequest();
              // Specify a topic based on your business scenario.
              request.topic = "/" + productKey + "/" + deviceName + "/user/data";
              ......
              ......
      }
    5. Cambie el endpoint MQTT en el archivo src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java por el endpoint MQTT correspondiente a su dispositivo.

      En este ejemplo se usa el siguiente endpoint MQTT. Para más información sobre cómo obtener endpoints MQTT, consulte View the endpoint of an instance.

      public void init(final DeviceInfoData deviceInfoData) {
              ......
              ......
              /**
               * Configure the parameters for MQTT initialization.
               */
              IoTMqttClientConfig config = new IoTMqttClientConfig();
              config.productKey = deviceInfoData.productKey;
              config.deviceName = deviceInfoData.deviceName;
              config.deviceSecret = deviceInfoData.deviceSecret;
              config.channelHost = "iot-06****.mqtt.iothub.aliyuncs.com:1883";
              ......
              ......
      }
    6. Ejecute el archivo src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java para iniciar el dispositivo.

    En la consola de IoT Platform, vaya a la página Instance Details de la instancia y seleccione Maintenance > Device Log. Allí podrá consultar los registros del dispositivo y comprobar si los datos se han reenviado correctamente a ApsaraMQ for RocketMQ.物联网设备消息

  5. Consulte los datos en la consola de ApsaraMQ for RocketMQ.

    1. Ejecute el código en su servidor local para suscribirse al topic de ApsaraMQ for RocketMQ.

      物联网设备消息

    2. Vaya a la página instance details en la consola de ApsaraMQ for RocketMQ y haga clic en Message Query. En la página Message Query, busque mensajes por topic o por ID de mensaje.

      Puede hacer clic en Details para ver la información detallada del mensaje reenviado a ApsaraMQ for RocketMQ y descargarlo.

      Mensaje de ejemplo:

      {"deviceName":"MQdevice"}