Baca dalam bahasa Inggris

Bagikan melalui


Broker MQTT lokal bawaan Azure IoT Operations

Penting

Halaman ini mencakup instruksi untuk mengelola komponen Azure IoT Operations menggunakan manifes penyebaran Kubernetes, yang sedang dalam pratinjau. Fitur ini disediakan dengan beberapa batasan, dan tidak boleh digunakan untuk beban kerja produksi.

Lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure untuk persyaratan hukum yang berlaku pada fitur Azure dalam versi beta, pratinjau, atau belum dirilis secara umum.

Azure IoT Operations memiliki broker MQTT yang tingkat perusahaan dan sesuai dengan standar. Broker MQTT dapat diskalakan, sangat andal, dan dirancang untuk Kubernetes. Ini menyediakan saluran pesan untuk Operasi IoT, memungkinkan komunikasi dua arah antara edge dan cloud, dan mendukung aplikasi yang digerakkan oleh peristiwa di edge.

Kepatuhan MQTT

MQTT telah muncul sebagai bahasa umum yang digunakan di antara protokol di ruang IoT. Desain sederhana MQTT memungkinkan satu broker untuk melayani puluhan ribu klien secara bersamaan, dengan pembuatan dan manajemen topik terbitkan-berlangganan yang ringan. Banyak perangkat IoT mendukung MQTT secara asli di luar kotak. Gateway terjemahan hilir menyederhanakan berbagai protokol IoT menjadi MQTT.

Broker MQTT mendukung lapisan olahpesan dalam Operasi IoT dan mendukung MQTT v3.1.1 dan MQTT v5. Untuk informasi selengkapnya tentang fitur MQTT yang didukung, lihat Dukungan fitur MQTT di broker MQTT.

Arsitektur

Broker MQTT memiliki dua lapisan utama:

  • Lapisan frontend tanpa status
  • Lapisan backend yang stateful dan terpisah-pisah

Lapisan frontend menangani koneksi dan permintaan klien dan merutekannya ke backend. Lapisan backend mempartisi data dengan kunci yang berbeda, seperti ID klien untuk sesi klien dan nama topik untuk pesan topik. Ini menggunakan replikasi rantai untuk mereplikasi data dalam setiap partisi.

Tujuan arsitekturnya adalah:

  • Toleransi dan isolasi kesalahan: Penerbitan pesan berlanjut jika pod backend gagal dan mencegah kegagalan menyebar ke sistem lainnya.
  • Pemulihan kegagalan: Pemulihan kegagalan otomatis tanpa intervensi operator.
  • Tidak ada pesan yang hilang: Pengiriman pesan jika setidaknya satu pod frontend dan satu pod backend dalam partisi sedang berjalan.
  • Penskalaan elastis: Penskalaan horizontal throughput penerbitan dan pelanggan untuk mendukung implementasi di edge dan cloud.
  • Kinerja yang konsisten dalam skala besar: Batasi kelebihan latensi pesan karena replikasi berantai.
  • Kesederhanaan operasional: Dependensi minimum pada komponen eksternal untuk menyederhanakan pemeliharaan dan kompleksitas.

Konfigurasi

Untuk konfigurasi, broker MQTT terdiri dari beberapa sumber daya kustom Kubernetes yang menentukan berbagai aspek perilaku dan fungsionalitas broker:

  • Sumber daya utamanya adalah Broker, yang mendefinisikan pengaturan global seperti kardinalitas, profil penggunaan memori, dan pengaturan diagnostik.
  • Sumber daya Broker dapat memiliki hingga tiga BrokerListeners, yang masing-masing mendengarkan koneksi MQTT masuk pada jenis layanan yang ditentukan (NodePort, LoadBalancer, atau ClusterIP). Setiap sumber daya BrokerListener dapat memiliki beberapa port.
  • Setiap port dalam sumber daya BrokerListener dapat dikaitkan dengan sumber daya BrokerAuthentication dan sumber daya BrokerAuthorization . Kebijakan autentikasi dan otorisasi ini menentukan klien mana yang dapat terhubung ke port dan tindakan apa yang dapat mereka lakukan pada broker.

Hubungan antara Broker dan BrokerListener adalah satu-ke-banyak. Hubungan antara BrokerListener dan BrokerAuthentication/BrokerAuthorization adalah hubungan banyak-ke-banyak. Diagram hubungan entitas untuk sumber daya ini adalah:

Diagram yang menunjukkan model sumber daya broker.

Secara bawaan, IoT Operations menyebarkan Broker, BrokerListener, dan BrokerAuthentication default. Semua sumber daya ini diberi nama default. Bersama-sama, sumber daya ini menyediakan pengaturan broker MQTT dasar yang diperlukan agar Operasi IoT berfungsi. Pengaturan defaultnya adalah:

Diagram yang menunjukkan sumber daya broker default dan hubungan di antara mereka.

Penting

Untuk mencegah gangguan yang tidak disengaja dengan komunikasi antara komponen internal Operasi IoT, kami sarankan Anda tidak mengubah konfigurasi default apa pun.

Untuk menyesuaikan penyebaran broker MQTT, tambahkan sumber daya baru seperti BrokerListeners, BrokerAuthentication, dan BrokerAuthorization ke Broker default.

Sumber daya Broker itu sendiri tidak dapat diubah dan tidak dapat dimodifikasi setelah penyebaran, tetapi hanya perlu penyesuaian dalam skenario lanjutan. Untuk mempelajari selengkapnya tentang menyesuaikan sumber daya Broker, lihat Menyesuaikan Broker default.

Dalam penyebaran penuh, Anda dapat memiliki beberapa BrokerListeners, masing-masing dengan beberapa port, dan setiap port dapat memiliki sumber daya BrokerAuthentication dan BrokerAuthorization yang berbeda yang terkait dengannya.

Misalnya, mulai dari penyiapan default, Anda menambahkan:

  • LoadBalancer BrokerListener bernama example-lb-listener, dengan dua port 1883 dan 8883.
  • NodePort BrokerListener bernama example-nodeport-listener, dengan port tunggal 1884 (nodePort 31884).
  • Sumber daya BrokerAuthentication bernama example-authn, dengan metode autentikasi kustom.
  • Sumber daya BrokerAuthorization bernama example-authz, dengan pengaturan otorisasi kustom Anda.

Kemudian, jika Anda mengonfigurasi semua port baru dengan menggunakan sumber daya BrokerAuthentication dan BrokerAuthorization yang sama, pengaturannya terlihat seperti:

Diagram yang menunjukkan penyebaran komprehensif broker kustom dan hubungan di antara masing-masing elemen.

Dengan cara ini, Anda menjaga penyiapan default tetap utuh dan menambahkan sumber daya baru untuk menyesuaikan penyebaran broker MQTT dengan kebutuhan Anda.

Sumber daya Broker Default

Setiap penyebaran Operasi IoT hanya dapat memiliki satu Broker, dan harus diberi nama default. Sumber daya Broker default diperlukan agar Operasi IoT berfungsi. Ini tidak dapat diubah dan tidak dapat dimodifikasi setelah penyebaran.

Perhatian

Jangan hapus sumber daya Broker default. Melakukannya akan mengganggu komunikasi antara komponen internal pengoperasian IoT, dan pengoperasian tidak dapat berfungsi.

Menyesuaikan default Broker

Menyesuaikan sumber daya Broker default tidak diperlukan untuk sebagian besar penyiapan. Pengaturan yang memerlukan penyesuaian meliputi:

  • Kardinalitas: Menentukan kapasitas broker untuk menangani lebih banyak koneksi dan pesan, dan meningkatkan availabilitas tinggi jika ada kegagalan pod atau simpul.
  • Profil memori: Mengatur penggunaan memori maksimum broker dan cara menangani penggunaan memori saat kapasitas broker meningkat.
  • Buffer pesan yang didukung disk: Konfigurasi untuk buffer pesan ke disk saat RAM terisi.
  • Pengaturan diagnostik: Konfigurasi untuk pengaturan diagnostik seperti tingkat log dan titik akhir metrik.
  • Opsi klien MQTT tingkat lanjut: Konfigurasi untuk opsi klien MQTT tingkat lanjut seperti kedaluwarsa sesi, kedaluwarsa pesan, dan pengaturan tetap aktif.
  • Enkripsi Lalu Lintas Internal: Konfigurasi untuk mengenkripsi lalu lintas internal antara pod frontend dan backend broker.

Anda hanya dapat menyesuaikan broker default selama waktu penyebaran awal, dengan menggunakan Azure CLI atau portal Azure. Penyebaran baru diperlukan jika Anda memerlukan pengaturan konfigurasi Broker yang berbeda.

Untuk mengkustomisasi pengaturan Broker default selama proses penyebaran:

Saat Anda mengikuti panduan untuk menyebarkan Operasi IoT, di bagian Konfigurasi, lihat di bawah Konfigurasi broker MQTT. Di sini, Anda dapat menyesuaikan pengaturan profil kardinalitas dan memori. Untuk mengonfigurasi pengaturan lain, termasuk buffer pesan yang didukung disk, dan opsi klien MQTT tingkat lanjut, gunakan Azure CLI.

Penting

Anda tidak dapat memperbarui sumber daya broker setelah penyebaran awal. Perubahan konfigurasi pada kardinalitas, profil memori, atau buffer disk tidak diizinkan pasca-penyebaran.

Sebagai solusinya, saat menyebarkan Operasi Azure IoT dengan perintah az iot ops init , Anda dapat menyertakan --broker-config-file parameter dengan file konfigurasi JSON untuk broker MQTT. Untuk informasi selengkapnya, lihat Konfigurasi broker MQTT Tingkat Lanjut dan Mengonfigurasi pengaturan broker MQTT inti.

Lihat pengaturan Broker default

Untuk melihat pengaturan broker default:

  1. Di portal Azure, buka instans Operasi IoT Anda.
  2. Di bawah Komponen, pilih MQTT Broker.
  3. Di bawah Detail broker, pilih tampilan JSON.