Gambaran umum fitur broker MQTT di Azure Event Grid
Azure Event Grid memungkinkan klien MQTT Anda untuk berkomunikasi satu sama lain dan dengan layanan Azure, untuk mendukung solusi Internet of Things (IoT) Anda.
Fitur broker MQTT Azure Event Grid memungkinkan Anda menyelesaikan skenario berikut:
- Menyerap telemetri menggunakan pola olahpesan banyak ke satu. Pola ini memungkinkan aplikasi untuk membongkar beban pengelolaan jumlah koneksi yang tinggi dengan perangkat ke Event Grid.
- Kontrol klien MQTT Anda menggunakan pola olahpesan request-response (satu-ke-satu). Pola ini memungkinkan klien untuk berkomunikasi dengan klien lain tanpa batasan, terlepas dari peran klien.
- Menyiarkan pemberitahuan ke armada klien menggunakan pola olahpesan satu-ke-banyak. Pola ini memungkinkan aplikasi untuk menerbitkan hanya satu pesan yang direplikasi layanan untuk setiap klien yang tertarik.
- Integrasikan data dari klien MQTT Anda dengan merutekan pesan MQTT ke layanan Azure dan Webhook melalui fungsi pengiriman HTTP Push. Integrasi dengan layanan Azure ini memungkinkan Anda membangun alur data yang dimulai dengan penyerapan data dari perangkat IoT Anda.
Anda dapat menemukan sampel kode yang menunjukkan skenario ini di repositori ini.
Broker MQTT sangat ideal untuk penerapan skenario otomotif dan mobilitas, antara lain. Lihat arsitektur referensi untuk mempelajari cara membangun solusi yang aman dan dapat diskalakan untuk menghubungkan jutaan kendaraan ke cloud, menggunakan layanan olahpesan dan analitik data Azure.
Konsep kunci
Berikut ini adalah daftar konsep utama yang terlibat dalam fitur broker MQTT Azure Event Grid.
MQTT
MQTT adalah protokol transportasi olahpesan terbitkan-berlangganan yang dirancang untuk lingkungan yang dibatasi. Ini adalah standar komunikasi masuk untuk skenario IoT karena efisiensi, skalabilitas, dan keandalan. Broker MQTT memungkinkan klien untuk menerbitkan dan berlangganan pesan melalui MQTT v3.1.1, MQTT v3.1.1 melalui WebSockets, MQTT v5, dan MQTT v5 melalui protokol WebSockets. Daftar berikut menunjukkan beberapa sorotan fitur broker MQTT:
Fitur MQTT v5:
- Last Will and Testament (LWT) memberi tahu klien MQTT Anda dengan pemutusan sambungan mendadak klien MQTT lainnya. Anda dapat menggunakan LWT untuk memastikan aliran komunikasi yang dapat diprediksi dan dapat diandalkan di antara klien MQTT selama pemutusan sambungan yang tidak terduga.
- Properti pengguna memungkinkan Anda menambahkan pasangan kunci-nilai kustom di header pesan untuk memberikan konteks lebih lanjut tentang pesan. Misalnya, sertakan tujuan atau asal pesan sehingga penerima dapat menangani pesan secara efisien.
- Pola respons permintaan memungkinkan klien Anda memanfaatkan pola asinkron respons permintaan standar, menentukan topik respons dan ID korelasi dalam permintaan klien untuk merespons tanpa konfigurasi sebelumnya.
- Interval kedaluwarsa pesan memungkinkan Anda untuk mendeklarasikan ke broker MQTT kapan harus mengalihkan pesan yang tidak lagi relevan atau valid. Misalnya, awasi perintah atau pemberitahuan kedaluarsa.
- Alias topik membantu klien Anda mengurangi ukuran bidang topik, membuat transfer data lebih murah.
- Ukuran pesan maksimum memungkinkan klien Anda mengontrol ukuran pesan maksimum yang dapat mereka tangani dari server.
- Terima Maksimum memungkinkan klien Anda mengontrol tingkat pesan tergantung pada kemampuan mereka seperti kecepatan pemrosesan atau kemampuan penyimpanan.
- Kedaluwarsa mulai dan sesi yang bersih memungkinkan klien Anda mengoptimalkan keandalan dan keamanan sesi dengan mempertahankan informasi dan pesan langganan klien untuk interval waktu yang dapat dikonfigurasi.
- Pengakuan negatif memungkinkan klien Anda untuk bereaksi secara efisien terhadap kode kesalahan yang berbeda.
- Paket pemutusan sambungan yang dikirim server memungkinkan klien Anda menangani pemutusan sambungan secara efisien.
Broker MQTT menambahkan lebih banyak fitur MQTT v5 di masa depan untuk menyelaraskan lebih banyak dengan spesifikasi MQTT. Item berikut merinci perbedaan saat ini antara fitur yang didukung oleh broker MQTT dan spesifikasi MQTT v5: Akan pesan, Pertahankan bendera, Pemesanan pesan, dan QoS 2 tidak didukung.
Fitur MQTT v3.1.1:
- Last Will and Testament (LWT) memberi tahu klien MQTT Anda dengan pemutusan sambungan mendadak klien MQTT lainnya. Anda dapat menggunakan LWT untuk memastikan aliran komunikasi yang dapat diprediksi dan dapat diandalkan di antara klien MQTT selama pemutusan sambungan yang tidak terduga.
- Sesi persisten memastikan keandalan dengan mempertahankan informasi dan pesan langganan klien saat klien terputus.
- QoS 0 dan 1 memberi klien Anda kontrol atas efisiensi dan keandalan komunikasi.
Broker MQTT menambahkan lebih banyak fitur MQTT v3.1.1 di masa depan untuk menyelaraskan lebih banyak dengan spesifikasi MQTT. Item berikut merinci perbedaan saat ini antara fitur yang didukung oleh broker MQTT dan spesifikasi MQTT v3.1.1: Pertahankan bendera, Pemesanan pesanan dan QoS 2 tidak didukung.
Pelajari selengkapnya tentang broker MQTT dan batasan saat ini.
Model olahpesan Terbitkan-Berlangganan
Model olahpesan terbitkan-berlangganan menyediakan komunikasi yang dapat diskalakan dan asinkron kepada klien. Ini memungkinkan klien untuk membongkar beban penanganan sejumlah besar koneksi dan pesan ke layanan. Melalui model olahpesan Terbitkan-Berlangganan, klien Anda dapat berkomunikasi secara efisien menggunakan pola olahpesan satu-ke-banyak, banyak-ke-satu, dan satu-ke-satu.
- Pola olahpesan satu-ke-banyak memungkinkan klien menerbitkan hanya satu pesan yang direplikasi layanan untuk setiap klien yang tertarik.
- Pola olahpesan banyak ke satu memungkinkan klien untuk membongkar beban pengelolaan jumlah koneksi yang tinggi ke broker MQTT.
- Pola olahpesan satu-ke-satu memungkinkan klien untuk berkomunikasi dengan klien lain tanpa batasan, terlepas dari peran klien.
Ruang nama
Event Grid Namespace adalah kontainer manajemen untuk sumber daya yang mendukung fungsionalitas broker MQTT, bersama dengan sumber daya yang mendukung fungsionalitas pengiriman pull. Klien MQTT Anda dapat terhubung ke broker MQTT dan menerbitkan/berlangganan pesan, sementara broker MQTT mengautentikasi klien Anda, mengotorisasi permintaan publikasi/berlangganan, dan meneruskan pesan ke klien yang tertarik. Pelajari selengkapnya tentang konsep namespace layanan.
Klien
Klien merujuk ke perangkat atau aplikasi IoT yang menerbitkan dan berlangganan pesan MQTT.
Perangkat IoT adalah objek fisik yang terhubung ke internet untuk mengirimkan telemetri dan menerima perintah. Perangkat ini dapat berupa sensor, appliance, mesin, atau objek lain yang dilengkapi dengan sensor dan perangkat lunak yang disematkan. Sensor dan perangkat lunak memungkinkan mereka untuk berkomunikasi dan berinteraksi satu sama lain dan lingkungan di sekitarnya. Nilai perangkat IoT terletak pada kemampuan mereka untuk memberikan data dan wawasan real time, memungkinkan bisnis dan individu untuk membuat keputusan berdasarkan informasi dan meningkatkan efisiensi dan produktivitas.
Aplikasi IoT dirancang untuk berinteraksi dan memproses data dari perangkat IoT. Mereka biasanya mencakup komponen seperti pengumpulan data, pemrosesan, penyimpanan, visualisasi, dan analitik. Aplikasi ini memungkinkan pengguna untuk memantau dan mengontrol perangkat yang terhubung, mengotomatiskan tugas, dan mendapatkan wawasan dari data yang dihasilkan oleh perangkat IoT.
Autentikasi Klien
Event Grid memiliki registri klien yang menyimpan informasi tentang klien yang diizinkan untuk menyambungkannya. Sebelum klien dapat terhubung, harus ada entri untuk klien tersebut di registri klien. Saat klien terhubung ke broker MQTT, klien perlu mengautentikasi dengan broker MQTT berdasarkan kredensial yang disimpan dalam registri identitas. Broker MQTT mendukung mekanisme autentikasi klien berikut:
- Autentikasi sertifikat X.509, yang merupakan standar autentikasi industri dalam perangkat IoT.
- Microsoft Entra IDauthentication, yang merupakan standar autentikasi Azure untuk aplikasi. Pelajari selengkapnya tentang autentikasi klien MQTT.
- Autentikasi OAuth 2.0 (JSON Web Token), yang menyediakan opsi ringan, aman, dan fleksibel untuk klien MQTT yang tidak disediakan di Azure.
Kontrol akses
Kontrol akses sangat penting untuk skenario IoT mengingat skala besar lingkungan IoT dan tantangan keamanan unik perangkat yang dibatasi. Event Grid memberikan Kontrol Akses Berbasis Peran (RBAC) melalui model kontrol akses fleksibel yang memungkinkan Anda mengelola otorisasi klien untuk menerbitkan atau berlangganan topik.
Mengingat skala besar lingkungan IoT, menetapkan izin untuk setiap klien ke setiap topik sangat melelahkan. Kontrol akses fleksibel Event Grid mengatasi tantangan skala ini melalui pengelompokan klien dan topik ke dalam grup klien dan ruang topik. Setelah membuat grup klien dan ruang topik, Anda dapat mengonfigurasi pengikatan izin untuk memberikan akses ke grup klien untuk menerbitkan atau berlangganan ruang topik.
Ruang topik juga menyediakan kontrol akses terperinci dengan memungkinkan Anda mengontrol otorisasi setiap klien dalam grup klien untuk menerbitkan atau berlangganan topiknya sendiri. Kontrol akses terperinci ini dicapai dengan menggunakan variabel dalam templat topik. Pelajari selengkapnya tentang kontrol akses.
Perutean
Event Grid memungkinkan Anda merutekan pesan MQTT anda ke layanan Azure atau webhook untuk diproses lebih lanjut. Dengan demikian, Anda dapat membangun solusi end-to-end dengan menggunakan data IoT Anda untuk analisis data, penyimpanan, dan visualisasi, di antara kasus penggunaan lainnya. Konfigurasi perutean memungkinkan Anda mengirim semua pesan MQTT dari klien Anda ke topik namespace Layanan Event Grid atau topik kustom Event Grid. Setelah pesan berada dalam topik, Anda dapat mengonfigurasi langganan peristiwa untuk menggunakan pesan dari topik tersebut. Misalnya, fungsionalitas ini memungkinkan Anda menggunakan Event Grid untuk merutekan telemetri dari perangkat IoT Anda ke Azure Event Hubs lalu ke Azure Stream Analytics untuk mendapatkan wawasan dari telemetri perangkat Anda. Pelajari selengkapnya tentang perutean.
Integrasi broker Edge MQTT
Event Grid terintegrasi dengan Azure IoT MQ untuk menjenjang kemampuan broker MQTT-nya di tepi dengan fitur broker MQTT Azure Event Grid di cloud. Azure IoT MQ adalah broker MQTT terdistribusi baru untuk komputasi edge, berjalan pada kluster Kubernetes dengan dukungan Arc. Ini dapat terhubung ke broker Azure Event Grid MQTT dengan autentikasi MICROSOFT Entra ID (sebelumnya Azure Active Directory) menggunakan identitas terkelola yang ditetapkan sistem, yang menyederhanakan manajemen kredensial. Azure IoT MQ menyediakan ketersediaan tinggi, skalabilitas, dan keamanan untuk perangkat dan aplikasi IoT Anda. Sekarang tersedia dalam pratinjau publik sebagai bagian dari Operasi Azure IoT. Pelajari selengkapnya tentang menyambungkan Azure IoT MQ ke broker MQTT Azure Event Grid.
Peristiwa Siklus Hidup Klien MQTT
Peristiwa Siklus Hidup Klien memungkinkan aplikasi untuk bereaksi terhadap peristiwa tentang status koneksi klien atau operasi sumber daya klien. Ini memungkinkan Anda melacak status koneksi klien Anda, bereaksi dengan tindakan mitigasi untuk pemutusan sambungan klien, dan melacak namespace layanan yang dilampirkan klien Anda selama failover otomatis. Pelajari selengkapnya tentang Peristiwa Siklus Hidup Klien MQTT.
Nama Domain Kustom
Dukungan nama domain kustom memungkinkan pengguna untuk menetapkan nama domain mereka sendiri ke titik akhir MQTT dan HTTP namespace Event Grid, meningkatkan keamanan dan menyederhanakan konfigurasi klien. Fitur ini membantu perusahaan memenuhi persyaratan keamanan dan kepatuhan mereka dan menghilangkan kebutuhan untuk memodifikasi klien yang sudah ditautkan ke domain. Menetapkan nama domain kustom ke beberapa namespace layanan juga dapat membantu meningkatkan ketersediaan, mengelola kapasitas, dan menangani mobilitas klien lintas wilayah. Pelajari selengkapnya tentang Nama domain kustom.
Langkah berikutnya
Gunakan artikel berikut untuk mempelajari selengkapnya tentang broker MQTT dan konsep utamanya.
- Menerbitkan dan berlangganan pesan MQTT
- Tutorial: Merutekan pesan MQTT ke Azure Event Hubs menggunakan topik namespace layanan
- Tutorial: Merutekan pesan MQTT ke Azure Functions menggunakan topik kustom
Konsep
- Terminologi
- Autentikasi klien
- Kontrol akses
- Dukungan protokol MQTT
- Merutekan pesan MQTT
- Peristiwa Siklus Hidup Klien MQTT.