Jika suatu produk menghasilkan kurang dari 1.000 QPS pesan perangkat dan Anda memerlukan pemrosesan detail halus, teruskan pesan dari Platform IoT ke Simple Message Queue (formerly MNS) (SMQ) untuk dikonsumsi. Saat Anda mengonfigurasi langganan sisi server untuk suatu produk dan jenis pesan, antrian SMQ akan dibuat secara otomatis. Klien SMQ Anda mendengarkan antrian tersebut untuk menerima pesan perangkat.
Prasyarat
Informasi latar belakang
Alibaba Cloud Simple Message Queue (formerly MNS) (SMQ) merupakan layanan perpesanan terdistribusi. SMQ memungkinkan transfer data dan pengiriman notifikasi antara komponen aplikasi terdistribusi.
Platform IoT menggunakan model messaging berbasis antrian SMQ untuk menerima pesan perangkat. Fitur model messaging berbasis antrian dan Konsep dasar model messaging berbasis antrian.
|
Istilah |
Deskripsi |
|
MNS server-side subscription |
Konfigurasikan langganan sisi server untuk suatu produk dan jenis pesan di Platform IoT agar secara otomatis membuat antrian SMQ. |
|
MNS client |
Konsumen yang menggunakan SDK cloud SMQ pada server bisnis Anda untuk menerima pesan perangkat. Panduan developer SDK cloud SMQ: Unduh dan penggunaan SDK. |
|
Message type |
Kategori pesan yang diklasifikasikan berdasarkan topik perangkat. Setelah Anda berlangganan ke jenis pesan tertentu, hanya pesan perangkat dari topik yang sesuai di bawah jenis tersebut yang dapat diteruskan ke klien MNS. Topik perangkat untuk setiap jenis pesan tercantum dalam tabel Topik jenis pesan di bawah ini. |
Platform IoT menyediakan langganan sisi server dan penerusan data. Keduanya meneruskan pesan perangkat ke klien SMQ untuk dikonsumsi. Penerusan data memungkinkan Anda menentukan topik perangkat dan memproses data sebelum meneruskannya. Perbandingan solusi penerusan data. Konfigurasikan penerusan data: Tambahkan sumber data untuk meneruskan data dan Teruskan data ke Message Service (MNS).
Batasan
-
Langganan sisi server MNS tidak didukung untuk instans Perusahaan di wilayah China (Beijing), China (Shenzhen), Singapura, Jepang (Tokyo), AS (Virginia), AS (Silicon Valley), atau Jerman (Frankfurt).
-
Hanya satu langganan antrian SMQ yang diizinkan per produk. Pesan yang melebihi batas langganan sisi server MNS tidak akan diteruskan. Batasan terkait antrian: Batasan.
-
Setelah Anda membuat langganan sisi server MNS, SMQ akan mengenakan biaya penggunaan resource antrian meskipun tidak ada pesan yang diteruskan ke antrian tersebut.
-
Setiap pesan yang diterima oleh antrian SMQ tidak boleh melebihi 64 KB. Pesan yang terlalu besar akan dibuang.
Penagihan
-
Jumlah pesan perangkat yang dapat Anda teruskan ke SMQ bergantung pada spesifikasi Message Forwarding TPS yang tersedia pada instans perangkat tersebut. Untuk instans publik, spesifikasi Message Forwarding TPS tetap pada 5 pesan/detik dan tidak dikenai biaya. Untuk instans Perusahaan, spesifikasi Message Forwarding TPS ditagih berdasarkan langganan. Jumlah yang tersedia bergantung pada spesifikasi Message Forwarding TPS yang telah dibeli untuk instans tersebut. Ikhtisar penagihan.
-
SMQ mengenakan biaya untuk menerima pesan. Penagihan.
Buat langganan sisi server
Saat Anda membuat langganan sisi server MNS untuk suatu produk dan jenis pesan di Platform IoT, antrian pesan akan dibuat secara otomatis di wilayah yang sama di SMQ di bawah akun Anda. Aplikasi yang menggunakan SDK cloud SMQ dapat mendengarkan antrian pesan ini untuk menerima pesan perangkat yang telah dilanggan.
-
Login ke Konsol Platform IoT.
Pada halaman Overview, klik All environment. Pada tab Semua lingkungan, temukan instans yang ingin Anda kelola lalu klik ID instans atau nama instans tersebut.
-
Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Server-side Subscription, di tab Subscription List, klik Create Subscription.
-
Pada kotak dialog Create Subscription, konfigurasikan parameter lalu klik OK.
Parameter
Deskripsi
Product
Pilih produk yang perangkatnya ingin Anda langgani.
Subscription Type
Pilih MNS.
Authorization
Klik Authorize, lalu aktifkan SMQ dan berikan izin sesuai petunjuk.
CatatanJika Anda telah mengaktifkan SMQ dan memberikan izin, lewati langkah ini.
Authorize Now
Klik Authorize Now lalu klik Agree to Authorization. Sistem akan membuat peran AliyunIOTAccessingMNSRole untuk memberikan Platform IoT izin mengakses SMQ dan meneruskan pesan ke SMQ.
CatatanJika peran AliyunIOTAccessingMNSRole telah dibuat, lewati langkah ini.
Message Type to Push
Pilih jenis pesan yang ingin Anda langgani:
PentingUntuk produk dan perangkat di bawah gerbang cloud, hanya data dari Device-reported messages, Device status change notifications, dan Device lifecycle changes yang dapat didorong. Topik penerusan pesan dan format data: Komunikasi pesan melalui MQTT, Penerusan pesan melalui GB/T 32960, Penerusan pesan melalui JT/T 808.
-
Device-reported messages: Pesan dari topik yang memiliki Operation Permission diatur ke Publish dalam daftar topik semua perangkat di bawah produk tersebut.
Pesan yang dilaporkan perangkat mencakup data kustom dan data model Thing Specification Language (TSL) (properti yang dilaporkan, event yang dilaporkan, respons terhadap pengaturan properti, dan respons terhadap pemanggilan layanan). Data model TSL yang didorong ke sisi server diproses oleh Platform IoT. Format data: Format data.
Sebagai contoh, suatu produk memiliki tiga kategori topik:
-
/${productKey}/${deviceName}/user/get, yang memiliki izin subscribe. -
/${productKey}/${deviceName}/user/update, yang memiliki izin publish. -
/${productKey}/${deviceName}/thing/event/property/post, yang memiliki izin publish.
Oleh karena itu, langganan sisi server akan mendorong pesan dari kategori topik dengan izin publish, yaitu
/${productKey}/${deviceName}/user/updatedan/${productKey}/${deviceName}/thing/event/property/post. -
-
Device status change notifications: Pesan yang dikirim saat status online atau offline perangkat di bawah produk tersebut berubah.
-
Sub-device discovery reports from gateway: Gateway melaporkan informasi tentang perangkat sub yang ditemukan ke Platform IoT. Hal ini memerlukan dukungan dari aplikasi pada gateway. Jenis pesan ini khusus untuk produk gateway.
-
Device topology changes: Pesan tentang pembuatan dan penghapusan topologi antara perangkat sub dan gateway. Jenis pesan ini khusus untuk produk gateway.
-
Device lifecycle changes: Pesan tentang pembuatan, penghapusan, penonaktifan, dan pengaktifan perangkat.
-
TSL model historical data reports: Data historis properti dan event yang dilaporkan oleh perangkat.
-
OTA update status notifications: Notifikasi event untuk pembaruan perangkat yang berhasil atau gagal selama verifikasi paket pembaruan dan pembaruan batch over-the-air (OTA).
Tabel 1. Deskripsi parameter
Jenis pesan
Deskripsi topik
Referensi
Device-reported messages: Topik kustom
Topik kustom yang memiliki Operation Permission Publish. Topik untuk meneruskan pesan dalam format data kustom sama dengan topik kustom aslinya.
Device-reported messages: Model Data TSL
Topik penerusan pesan mencakup hal berikut:
-
Topik untuk melaporkan properti perangkat:
/${productKey}/${deviceName}/thing/event/property/post. -
Topik untuk melaporkan event perangkat:
/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post. -
Topik untuk melaporkan properti perangkat secara batch:
/${productKey}/${deviceName}/thing/property/batch/post. -
Topik untuk melaporkan event perangkat secara batch:
/${productKey}/${deviceName}/thing/event/batch/post. -
Topik untuk mengembalikan respons terhadap perintah dari cloud:
/${productKey}/${deviceName}/thing/downlink/reply/message.
Topik yang sesuai untuk data mentah yang dilaporkan perangkat adalah sebagai berikut:
-
Topik untuk melaporkan properti perangkat:
/sys/${productKey}/${deviceName}/thing/event/property/post. -
Topik untuk melaporkan event perangkat:
/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post,/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post. -
Topik untuk melaporkan properti dan event perangkat secara batch:
/sys/${productKey}/${deviceName}/thing/event/property/batch/post. -
Topik untuk mengembalikan respons terhadap perintah dari cloud:
/sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}_reply
Device status change notifications
Platform IoT langsung meneruskan pesan tentang perubahan status online/offline perangkat. Topiknya adalah
/as/mqtt/status/${productKey}/${deviceName}.Sub-device discovery reports from gateway
Topik khusus untuk perangkat gateway:
/${productKey}/${deviceName}/thing/list/found. Gateway melaporkan informasi tentang perangkat sub yang ditemukan ke Platform IoT, lalu informasi tersebut diteruskan.Device topology changes
Topik khusus untuk perangkat gateway:
/${productKey}/${deviceName}/thing/topo/lifecycle. Topik ini digunakan untuk meneruskan pesan tentang pembuatan dan penghapusan topologi antara perangkat sub dan gateway.Topik yang sesuai untuk data mentah yang dilaporkan perangkat:
/sys/${productKey}/${deviceName}/thing/topo/change.Device lifecycle changes
Platform IoT langsung meneruskan pesan tentang pembuatan, penghapusan, penonaktifan, dan pengaktifan perangkat. Topiknya adalah
/${productKey}/${deviceName}/thing/lifecycle.TSL model historical data reports
Topik penerusan pesan mencakup hal berikut:
-
Topik untuk melaporkan data properti historis:
/${productKey}/${deviceName}/thing/event/property/history/post. -
Topik untuk melaporkan data event historis:
/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post.
Topik untuk melaporkan data model TSL historis:
/sys/${productKey}/${deviceName}/thing/event/property/history/post.OTA update status notifications
Topik penerusan pesan mencakup hal berikut:
-
Topik untuk melaporkan hasil pembaruan OTA:
/${productKey}/${deviceName}/ota/upgrade. -
Topik untuk melaporkan progres pembaruan OTA:
/${productKey}/${deviceName}/ota/progress/post.
Topik untuk melaporkan progres pembaruan:
/ota/device/progress/${productKey}/${deviceName}. -
-
Pada kotak dialog konfirmasi yang muncul, klik OK.
Antrian SMQ akan dibuat secara otomatis di SMQ. Nama antrian menggunakan format
aliyun-iot-${productKey}, sepertialiyun-iot-ws4******.CatatanMenghapus langganan sisi server MNS di Platform IoT juga akan secara otomatis menghapus antrian SMQ yang sesuai di SMQ.
Kembangkan klien konsumen
Setelah mengonfigurasi langganan sisi server MNS, gunakan SDK cloud SMQ pada server bisnis Anda untuk mendengarkan antrian SMQ dan menerima pesan perangkat yang telah dilanggan. Hal ini memungkinkan aplikasi cloud SMQ Anda menerima pesan perangkat dari Platform IoT.
Platform IoT merekomendasikan contoh ConsumerDemo untuk model messaging berbasis antrian dalam SDK Java SMQ untuk mendengarkan antrian SMQ yang telah dibuat, misalnya aliyun-iot-ws4******.
Unduh paket contoh terbaru dari Catatan rilis SDK Java. ConsumerDemo dalam Panduan Pengguna Antrian.
Dalam file ConsumerDemo, konfigurasikan nama antrian SMQ yang dibuat secara otomatis oleh Platform IoT, misalnya aliyun-iot-ws4******.
CloudQueue queue = client.getQueueRef("aliyun-iot-ws4******");
Format data untuk pesan yang diterima
Setelah perangkat terhubung ke Platform IoT dan mengirim pesan, klien SMQ menerima pesan dalam format berikut. Pengembangan sisi perangkat: Hubungkan perangkat menggunakan SDK perangkat.
{
"messageid":" ",
"messagetype":"upload",
"topic":"/al12345****/device123/user/update",
"payload":" ",
"timestamp": " "
}
|
Parameter |
Deskripsi |
|
messageid |
ID pesan yang dihasilkan oleh Platform IoT. |
|
messagetype |
Jenis pesan. Nilai yang valid:
|
|
topic |
Topik Platform IoT yang didengarkan oleh server. Topik tercantum dalam tabel Deskripsi topik pada bagian Buat langganan sisi server. |
|
payload |
Data pesan yang dienkode Base64. Topik dan format data payload untuk pesan yang diteruskan ke Simple Message Queue (formerly MNS): Format data. |
|
timestamp |
Timestamp dalam waktu Epoch. |
Referensi
-
Periksa resource Message Forwarding TPS yang tersedia pada halaman detail instans untuk memastikan pesan perangkat dapat diteruskan ke SMQ untuk dikonsumsi. Lihat resource instans yang tersedia. Jika resource tidak mencukupi, tingkatkan instans tersebut. Tingkatkan instans berbayar.
-
Periksa jumlah pesan yang diterima di Lihat metrik antrian.
-
Dorong log operasi pesan ke Layanan Log Sederhana dengan fitur Manajemen Log. Untuk mendiagnosis exception konfirmasi pesan, gunakan MessageId untuk mengkueri jejak pesan. Dorong log ke Layanan Log Sederhana dan Lihat log di Layanan Log Sederhana.
-
Tutorial menerima pesan perubahan status perangkat dengan mendengarkan antrian SMQ: Contoh langganan sisi server (MNS).
-
SMQ menyediakan SDK dalam berbagai bahasa (Python, C#, PHP) untuk mendengarkan antrian SMQ. Unduh dan penggunaan SDK.