全部产品
Search
文档中心

IoT Platform:Meneruskan data perangkat ke server bisnis menggunakan ApsaraMQ for RocketMQ

更新时间:Jul 02, 2025

IoT Platform meneruskan data yang dikirim oleh perangkat ke topik ApsaraMQ for RocketMQ. Kemudian, ApsaraMQ for RocketMQ meneruskan data tersebut ke server bisnis Anda. Topik ini menjelaskan cara meneruskan data.

Prasyarat

  • Akun Alibaba Cloud telah dibuat.

  • IoT Platform telah diaktifkan.

  • ApsaraMQ for RocketMQ telah diaktifkan.

    Jika ApsaraMQ for RocketMQ belum diaktifkan, kunjungi halaman produk ApsaraMQ for RocketMQ untuk mengaktifkan layanan.

  • Lingkungan pengembangan telah disiapkan. Dalam contoh ini, digunakan lingkungan pengembangan Java dengan komponen-komponen berikut:

Informasi latar belakang

Proses Penerusan Data

消息流转MQ

Manfaat:

  • Ketika Anda menghubungkan perangkat ke IoT Platform melalui Message Queuing Telemetry Transport (MQTT), tautan transmisi data menggunakan enkripsi Transport Layer Security (TLS) untuk mencegah data dirusak. Untuk informasi lebih lanjut tentang MQTT, lihat Protokol MQTT.

  • ApsaraMQ for RocketMQ digunakan sebagai buffer pesan untuk mengurangi fluktuasi lalu lintas dan beban kerja bersamaan pada server bisnis Anda.

Prosedur

  1. Masuk ke Konsol IoT Platform dan buat produk serta perangkat.

    1. Di halaman Overview, klik All environment. Pada tab All environment, temukan instance yang ingin Anda kelola dan klik ID atau nama instance.

      Dalam contoh ini, wilayah China (Shanghai) telah dipilih.

    2. Di panel navigasi sisi kiri, pilih Devices > Products. Di halaman Products, klik Create Product. Di halaman Create Product, konfigurasikan parameter dan klik OK.

      Dalam contoh ini, parameter Product Name diatur menjadi MQ_test dan parameter Node Type diatur menjadi Directly Connected Device. Gunakan nilai default untuk parameter lainnya.

    3. Klik View Product Details. Di halaman detail produk, pilih Topic Categories > Topic Category dan klik Edit Topic Category untuk membuat kategori topik yang digunakan untuk mengirimkan data perangkat.

      Dalam contoh ini, kategori topik bernama /{YourProductKey}/${YourDeviceName}/user/data dibuat.

    4. Di panel navigasi sisi kiri, pilih Devices > Devices. Di halaman Devices, klik Add Device untuk membuat perangkat untuk produk MQ_test.

      Dalam contoh ini, perangkat bernama MQdevice dibuat.

  2. Di konsol ApsaraMQ for RocketMQ, buat topik dan konsumen.

    1. Masuk ke Konsol ApsaraMQ for RocketMQ.

    2. Di panel navigasi sisi kiri, klik Instances. Di halaman Instances, klik Create Instance. Dalam contoh ini, sebuah instance dengan parameter Instance Version diatur ke V4.0 dan parameter Instance Type diatur ke Standard Edition Instance dibuat di wilayah China (Shanghai).

      Untuk informasi lebih lanjut, lihat Buat Instance.

      Penting
      • Instance ApsaraMQ for RocketMQ harus berada di wilayah yang sama dengan instance IoT Platform.

      • Anda hanya dapat meneruskan aliran data ke topik ApsaraMQ for RocketMQ versi V4.x.

    3. Di halaman Instances, temukan instance tempat Anda ingin membuat database dan klik nama instance.

    4. Di halaman Instance Details, klik Create Group. Di panel Create Group, konfigurasikan parameter dan klik OK, seperti ditunjukkan pada gambar berikut.

      物联网设备消息

    5. Klik Create Topic. Di panel Create Topic, atur parameter Message Type ke Normal Message.

      物联网设备消息

    6. Buat konsumen dan lihat status konsumen di konsol ApsaraMQ for RocketMQ. Pastikan konsumen dalam keadaan Online dan langganan konsumen dalam grup konsisten.

      Dalam contoh ini, TCP SDK digunakan untuk mengirim dan menerima pesan. Untuk informasi lebih lanjut tentang cara mendapatkan dan menggunakan TCP SDK, lihat Gunakan TCP Client SDKs untuk Mengirim dan Berlangganan Pesan Normal.

      Contoh Kode Java:

      Catatan
      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();
              // ID grup yang Anda buat di konsol ApsaraMQ for RocketMQ.
              properties.put(PropertyKeyConst.GROUP_ID, "XXX");
              // ID AccessKey yang Anda buat di Konsol Manajemen Alibaba Cloud untuk otentikasi identitas.
              properties.put(PropertyKeyConst.AccessKey, "${AccessKey}");
              // Rahasia AccessKey yang Anda buat di Konsol Manajemen Alibaba Cloud untuk otentikasi identitas.
              properties.put(PropertyKeyConst.SecretKey, "${SecretKey}");
              // Titik akhir TCP. Untuk mendapatkan titik akhir TCP, buka bagian Informasi Dasar halaman detail instance di konsol IoT Platform.
              properties.put(PropertyKeyConst.NAMESRV_ADDR,
                  "XXX");
              // Langganan kluster. Ini adalah mode default.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
              // Langganan siaran.
              // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);
              Consumer consumer = ONSFactory.createConsumer(properties);
              consumer.subscribe("iotx_test_mq", "", new MessageListener() { // Berlangganan beberapa tag.
                  public Action consume(Message message, ConsumeContext context) {
                      System.out.println("Receive: " + message);
                      return Action.CommitMessage;
                  }
              });
              consumer.start();
              System.out.println("Consumer Started");
          }
      }
  3. Di Konsol IoT Platform, konfigurasikan aturan penerusan data untuk instance guna meneruskan data perangkat ke ApsaraMQ for RocketMQ.

    1. Di panel navigasi sisi kiri, pilih Message Forwarding > Data Forwarding.

    2. Di halaman Data Forwarding, klik Create Rule.

      Penting

      Jika halaman Data Forwarding versi terbaru muncul, klik Back to Previous Version di pojok kanan atas halaman. Ketika halaman Data Forwarding versi sebelumnya muncul, klik Create Rule.

    3. Di kotak dialog Create Data Forwarding Rule, atur parameter Rule Name ke Penerusan MQ dan atur parameter Data Type ke JSON. Lalu, klik OK.

    4. Di halaman detail aturan, klik Write SQL Statement. Di kotak dialog Write SQL Statement, konfigurasikan parameter dan klik OK, seperti ditunjukkan pada gambar berikut.

      物联网设备消息

    5. Klik Add Operation. Di kotak dialog Add Operation, tentukan tujuan ke mana Anda ingin meneruskan data dan klik OK, seperti ditunjukkan pada gambar berikut.

      物联网设备消息

    6. Pergi ke halaman Data Forwarding. Temukan aturan penerusan MQ dan klik Start di kolom Actions.

      Setelah aturan diaktifkan, IoT Platform meneruskan data perangkat ke topik ApsaraMQ for RocketMQ.

  4. Gunakan Java SDK untuk mensimulasikan perangkat, hubungkan perangkat ke IoT Platform, lalu gunakan perangkat untuk mengirimkan data.

    1. Unduh paket demo dari Download Java SDK Demo dan ekstrak paket tersebut.

    2. Mulai IntelliJ IDEA dan impor proyek sampel bernama JavaLinkKitDemo dari paket demo.

    3. Tentukan informasi sertifikat perangkat berikut untuk perangkat MQdevice di file device_id.json: ProductKey, DeviceName, dan DeviceSecret.

    4. Ubah topik MQTT di file src\main\java\com.aliyun.alink.devicesdk.demo\MqttSample.java ke topik tempat perangkat mengirimkan data.

      Dalam contoh ini, topik /{YourProductKey}/${YourDeviceName}/user/data digunakan.

      /**
       * Contoh operasi publikasi
       */
      public void publish() {
              MqttPublishRequest request = new MqttPublishRequest();
              // Tentukan topik berdasarkan skenario bisnis Anda.
              request.topic = "/" + productKey + "/" + deviceName + "/user/data";
              ......
              ......
      }
    5. Ubah titik akhir MQTT di file src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java ke titik akhir MQTT perangkat Anda.

      Dalam contoh ini, titik akhir MQTT berikut digunakan. Untuk informasi lebih lanjut tentang cara mendapatkan titik akhir MQTT, lihat Lihat Titik Akhir Instance.

      public void init(final DeviceInfoData deviceInfoData) {
              ......
              ......
              /**
               * Konfigurasikan parameter untuk inisialisasi MQTT.
               */
              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. Eksekusi file src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.java untuk memulai perangkat.

    Di konsol IoT Platform, pergi ke halaman Instance Details instance dan pilih Maintenance > Device Log. Anda dapat melihat log perangkat dan memeriksa apakah data perangkat diteruskan ke ApsaraMQ for RocketMQ.物联网设备消息

  5. Lihat data di konsol ApsaraMQ for RocketMQ.

    1. Jalankan kode di server lokal Anda untuk berlangganan topik ApsaraMQ for RocketMQ.

      物联网设备消息

    2. Pergi ke halaman instance details di konsol ApsaraMQ for RocketMQ dan klik Message Query. Di halaman Message Query, cari pesan berdasarkan topik atau ID pesan.

      Anda dapat mengklik Details untuk melihat detail pesan yang diteruskan ke ApsaraMQ for RocketMQ dan kemudian mengunduh pesan tersebut.

      Contoh Pesan:

      {"deviceName":"MQdevice"}