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:
Sistem operasi: Windows 10 (64-bit)
Java Development Kit (JDK): JDK 8
Integrated development environment (IDE): IntelliJ IDEA Community Edition
Informasi latar belakang
Proses Penerusan Data

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
Masuk ke Konsol IoT Platform dan buat produk serta perangkat.
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.
Di panel navigasi sisi kiri, pilih . 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.
Klik View Product Details. Di halaman detail produk, pilih 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.
Di panel navigasi sisi kiri, pilih . Di halaman Devices, klik Add Device untuk membuat perangkat untuk produk MQ_test.
Dalam contoh ini, perangkat bernama MQdevice dibuat.
Di konsol ApsaraMQ for RocketMQ, buat topik dan konsumen.
Masuk ke Konsol ApsaraMQ for RocketMQ.
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.
PentingInstance 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.
Di halaman Instances, temukan instance tempat Anda ingin membuat database dan klik nama instance.
Di halaman Instance Details, klik Create Group. Di panel Create Group, konfigurasikan parameter dan klik OK, seperti ditunjukkan pada gambar berikut.

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

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:
CatatanUntuk informasi lebih lanjut tentang cara melihat ID AccessKey dan Rahasia AccessKey, lihat Buat Pasangan AccessKey.
Untuk informasi lebih lanjut tentang cara menggunakan ApsaraMQ for RocketMQ, lihat Dokumentasi ApsaraMQ for RocketMQ.
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"); } }
Di Konsol IoT Platform, konfigurasikan aturan penerusan data untuk instance guna meneruskan data perangkat ke ApsaraMQ for RocketMQ.
Di panel navigasi sisi kiri, pilih .
Di halaman Data Forwarding, klik Create Rule.
PentingJika 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.
Di kotak dialog Create Data Forwarding Rule, atur parameter Rule Name ke Penerusan MQ dan atur parameter Data Type ke JSON. Lalu, klik OK.
Di halaman detail aturan, klik Write SQL Statement. Di kotak dialog Write SQL Statement, konfigurasikan parameter dan klik OK, seperti ditunjukkan pada gambar berikut.

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

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.
Gunakan Java SDK untuk mensimulasikan perangkat, hubungkan perangkat ke IoT Platform, lalu gunakan perangkat untuk mengirimkan data.
Unduh paket demo dari Download Java SDK Demo dan ekstrak paket tersebut.
Mulai IntelliJ IDEA dan impor proyek sampel bernama JavaLinkKitDemo dari paket demo.
Tentukan informasi sertifikat perangkat berikut untuk perangkat MQdevice di file
device_id.json: ProductKey, DeviceName, dan DeviceSecret.Ubah topik MQTT di file
src\main\java\com.aliyun.alink.devicesdk.demo\MqttSample.javake 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"; ...... ...... }Ubah titik akhir MQTT di file
src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.javake 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"; ...... ...... }Eksekusi file
src\main\java\com.aliyun.alink.devicesdk.demo\HelloWorld.javauntuk memulai perangkat.
Di konsol IoT Platform, pergi ke halaman Instance Details instance dan pilih . Anda dapat melihat log perangkat dan memeriksa apakah data perangkat diteruskan ke ApsaraMQ for RocketMQ.

Lihat data di konsol ApsaraMQ for RocketMQ.
Jalankan kode di server lokal Anda untuk berlangganan topik ApsaraMQ for RocketMQ.

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"}