Broker MQTT 5 (EMQX) - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Broker MQTT 5 (EMQX)

Komponen broker EMQX MQTT (aws.greengrass.clientdevices.mqtt.EMQX) menangani pesan MQTT antara perangkat klien dan perangkat inti Greengrass. Komponen ini menyediakan versi modifikasiBroker EMQX MQTT 5.0. Menyebarkan broker MQTT ini untuk menggunakan fitur MQTT 5 dalam komunikasi antara perangkat klien dan perangkat inti. Untuk informasi selengkapnya tentang cara memilih broker MQTT, lihatPilih broker MQTT.

Broker ini mengimplementasikan protokol MQTT 5.0. Ini mencakup dukungan untuk sesi dan interval kedaluwarsa pesan, properti pengguna, langganan bersama, alias topik, dan banyak lagi. MQTT 5 kompatibel dengan MQTT 3.1.1, jadi jika Anda menjalankanMoquette MQTT 3.1.1 Broker, Anda dapat menggantinya dengan broker EMQX MQTT 5, dan perangkat klien dapat terus terhubung dan beroperasi seperti biasa.

Fitur MQTT 5 terbatas pada komunikasi antara perangkat inti dan perangkat klien, karenaAWS IoT CoreBroker MQTT mengimplementasikan protokol MQTT 3.1.1. Akibatnya, saat Anda menggunakanKomponen jembatan MQTTuntuk menyampaikan pesan MQTT antaraAWS IoT Coredan broker MQTT 5 ini, pesan menggunakan MQTT 3.1.1, bukan MQTT 5.

catatan

Perangkat klien adalah perangkat IoT lokal yang terhubung ke perangkat inti Greengrass untuk mengirim pesan MQTT dan data yang akan diproses. Untuk informasi selengkapnya, lihat Berinteraksilah dengan perangkat IoT lokal.

Versi

Komponen ini memiliki versi berikut:

  • 1.0.x

Tipe

Inikomponen adalah komponen generik (aws.greengrass.generic). KlasterInti Greengrassmenjalankan skrip siklus hidup komponen.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

Komponen ini dapat diinstal pada perangkat inti yang menjalankan sistem operasi berikut:

  • Linux

  • Windows

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

  • Perangkat inti harus dapat menerima koneksi pada port tempat broker MQTT beroperasi. Komponen ini menjalankan broker MQTT pada port 8883 secara default. Anda dapat menentukan port yang berbeda saat Anda mengonfigurasi komponen ini.

    Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen jembatan MQTTuntuk menyampaikan pesan MQTT ke broker lain, Anda harus menggunakan jembatan MQTT v2.1.0 atau yang lebih baru. Konfigurasikan untuk menggunakan port tempat broker MQTT beroperasi.

    Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen detektor IPuntuk mengelola titik akhir broker MQTT, Anda harus menggunakan detektor IP v2.1.0 atau yang lebih baru. Konfigurasikan untuk melaporkan port tempat broker MQTT beroperasi.

  • Pada perangkat inti Linux, Docker diinstal dan dikonfigurasi pada perangkat inti:

    • Mesin Docker1.9.1 atau yang lebih baru yang terpasang pada perangkat inti Greengrass. Versi 20.10 adalah versi terkini yang disahkan untuk bekerja denganAWS IoT GreengrassPerangkat lunak inti. Anda harus menginstal Docker langsung pada perangkat inti sebelum Anda men-deploy komponen yang menjalankan kontainer Docker.

    • Daemon Docker dimulai dan berjalan pada perangkat inti sebelum Anda men-deploy komponen ini.

    • Pengguna sistem yang menjalankan komponen ini harus memiliki izin root atau administrator. Atau, Anda dapat menjalankan komponen ini sebagai pengguna sistem didockerkelompokkan dan konfigurasikan komponen inirequiresPrivilegesopsi untukfalseuntuk menjalankan broker EQMX MQTT tanpa hak istimewa.

Dependensi

Saat Anda men-deploy komponen, AWS IoT Greengrass juga men-deploy versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass tersebut. Pada halaman detail komponen, cari daftar Dependensi.

Tabel berikut mencantumkan dependensi untuk versi 2.0.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Auth perangkat klien >=2.2.0 <2.3.0 Keras

Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.

Konfigurasi

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.

emqx

(Opsional)Broker MQTT EMQXkonfigurasi untuk digunakan. Anda dapat mengonfigurasi subset dari opsi konfigurasi EMQX dalam komponen ini.

Objek ini berisi informasi berikut:

listener.ssl.external

(Opsional) Port tempat broker MQTT beroperasi.

catatan

Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen jembatan MQTTuntuk menyampaikan pesan MQTT ke broker lain, Anda harus menggunakan jembatan MQTT v2.1.0 atau yang lebih baru. Konfigurasikan untuk menggunakan port tempat broker MQTT beroperasi.

Jika Anda menentukan port yang berbeda, dan Anda menggunakanKomponen detektor IPuntuk mengelola titik akhir broker MQTT, Anda harus menggunakan detektor IP v2.1.0 atau yang lebih baru. Konfigurasikan untuk melaporkan port tempat broker MQTT beroperasi.

Default: 8883

listener.ssl.external.max_connections

(Opsional) Jumlah maksimum connection konkuren yang didukung oleh broker MQTT.

Default: 1024000

listener.ssl.external.max_conn_rate

(Opsional) Jumlah maksimum koneksi baru per detik yang dapat diterima broker MQTT.

Default: 500

listener.ssl.external.rate_limit

(Opsional) Batas bandwidth untuk semua koneksi ke broker MQTT. Tentukan bandwidth dan durasi untuk bandwidth yang dipisahkan dengan koma (,) dalam format berikut: bandwidth,duration. Misalnya, Anda dapat menentukan50KB,5suntuk membatasi broker MQTT hingga 50 kilobyte (KB) data setiap 5 detik.

listener.ssl.external.handshake_timeout

(Opsional) Jumlah waktu yang menunggu broker MQTT untuk menyelesaikan otentikasi koneksi baru.

Default: 15s

mqtt.max_packet_size

(Opsional) Ukuran maksimum pesan MQTT.

Default: 268435455 (256 MB dikurangi 1)

log.level

(Opsional) Tingkat log untuk broker MQTT. Pilih dari salah satu pilihan berikut:

  • debug

  • info

  • notice

  • warning

  • error

  • critical

  • alert

  • emergency

Tingkat log default adalahwarning.

requiresPrivilege

(Opsional) Pada perangkat inti Linux, Anda dapat menentukan untuk menjalankan broker EMQX MQTT tanpa hak root atau administrator. Jika Anda mengatur opsi ini kefalse, pengguna sistem yang menjalankan komponen ini harus menjadi anggotadockergrup.

Default: true

startupTimeoutSeconds

(Opsional) Waktu maksimum dalam detik untuk broker EMQX MQTT untuk memulai. Status komponen berubah menjadiBROKENjika melebihi batas waktu ini.

Default: 90

ipcTimeoutSeconds

(Opsional) Maksimum waktu dalam detik untuk komponen menunggu inti Greengrass untuk menanggapi permintaan komunikasi antarproses (IPC). Tingkatkan angka ini jika komponen ini melaporkan kesalahan batas waktu saat memeriksa apakah perangkat klien diotorisasi.

Default: 5

crtLogLevel

(Opsional) Tingkat log untukAWSUmum Runtime (CRT) perpustakaan.

Default ke level log broker EMQX MQTT (log.leveldiemqx).

restartIdentifier

(Opsional) Konfigurasikan opsi ini untuk memulai ulang broker EMQX MQTT. Ketika nilai konfigurasi ini berubah, komponen ini memulai ulang broker MQTT. Anda dapat menggunakan opsi ini untuk memaksa perangkat klien memutuskan sambungan.

contoh Contoh: Pembaruan gabungan konfigurasi

Contoh konfigurasi berikut menentukan untuk mengoperasikan broker MQTT pada port 443.

{ "emqx": { "listener.ssl.external": "443", "listener.ssl.external.max_connections": "1024000", "listener.ssl.external.max_conn_rate": "500", "listener.ssl.external.rate_limit": "50KB,5s", "listener.ssl.external.handshake_timeout": "15s", "log.level": "warning" }, "requiresPrivilege": "true", "startupTimeoutSeconds": "90", "ipcTimeoutSeconds": "5" }

File log lokal

Komponen ini menggunakan file log berikut.

Linux
/greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
Windows
C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log

Untuk melihat log komponen ini

  • Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti/greengrass/v2atauC:\greengrass\v2dengan jalur keAWS IoT Greengrassfolder akar.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log -Tail 10 -Wait

Lisensi

Pada sistem operasi Windows, perangkat lunak ini menyertakan kode yang didistribusikan di bawahKetentuan Lisensi Perangkat Lunak Microsoft - Komunitas Microsoft Visual Studio 2022. Dengan mengunduh perangkat lunak ini, Anda menyetujui persyaratan lisensi kode tersebut.

Komponen ini dirilis menurut Perjanjian Lisensi Perangkat Lunak Greengrass Core.

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

Versi

Perubahan

1.0.1

Memperbaiki masalah selama jabat tangan TLS yang mengakibatkan beberapa klien MQTT gagal terhubung.

1.0.0

Versi awal.