Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Eclipse Hono Sekarang Mendukung Apache Kafka untuk Messaging Perangkat yang Lancar

Eclipse Hono adalah proyek open source untuk menghubungkan sejumlah besar perangkat heterogen ke backend (cloud). Hono mendefinisikan antarmuka layanan yang memungkinkan komunikasi seragam antara perangkat, yang mungkin menggunakan protokol yang sangat berbeda, serta aplikasi bisnis. Proyek ini telah ada beberapa waktu dan telah digunakan dengan sukses di Bosch IoT Device Management selama beberapa tahun. Yang baru adalah sekarang ia mendukung Apache Kafka untuk messaging. Manfaat dan perubahan dalam penggunaan Hono diperkenalkan dalam artikel ini.

Eclipse Hono Sekarang Mendukung Apache Kafka untuk Messaging Perangkat yang Lancar

Data yang datang dari perangkat diubah di Hono menjadi format pesan seragam oleh protocol adapters (misalnya, ada beberapa untuk MQTT, HTTP, dan CoAp) dan diteruskan ke sistem messaging. Aplikasi bisnis membaca pesan ini, yang adalah telemetry messages atau events, secara langsung dari sistem messaging (mereka juga dapat menggunakan Command and Control untuk mengirim pesan ke perangkat dan menerima respons). Untuk messaging, yang bukan bagian dari Hono tetapi harus disediakan secara eksternal, protokol AMQP 1.0 telah digunakan sejauh ini.

Sejak versi 1.7, Hono mendukung Apache Kafka untuk messaging sebagai technical preview. Fitur kunci Hono adalah definisi dan implementasi API untuk meneruskan pesan ke dan dari sistem messaging. Karena definisi API didasarkan pada messaging dan bergantung langsung pada propertinya, mendukung sistem messaging baru adalah inovasi fundamental bagi Hono. Untuk semua API messaging di Hono (telemetry, event, dan command and control), spesifikasi baru berdasarkan Kafka dibuat, baik menghadapi protocol adapter maupun aplikasi bisnis. Perhatian diberikan untuk memastikan bahwa mereka berperilaku se Mirip mungkin dengan API berbasis AMQP.

Manfaat

Apache Kafka adalah platform streaming event terdistribusi yang dirancang untuk throughput yang sangat tinggi sambil memberikan jaminan tertentu dalam urutan pesan. Ini cocok untuk kebutuhan Hono mengenai messaging dari beberapa alasan. Manfaat utama adalah:

Perubahan

AMQP 1.0 adalah protokol komunikasi di mana peers terhubung satu sama lain untuk bertukar pesan. Sebaliknya, kluster Kafka terdiri dari brokers yang mengkoordinasikan penulisan (dan pembacaan) data ke penyimpanan permanen. Perbedaan ini memiliki dua konsekuensi: Pertama, pesan tersedia untuk pengambilan untuk sementara sebelum akhirnya dihapus. Untuk mencapai efek ini di Hono dengan AMQP, biasanya Anda menyediakan message broker terpisah tempat events disimpan untuk menghindari kehilangan pesan jika aplikasi bisnis sementara tidak tersedia. Dengan Kafka, setiap pesan disimpan. Ini mencakup pesan telemetri (waktu penyimpanan, tergantung pada konfigurasi topik telemetri di kluster Kafka). Kedua, berkomunikasi melalui penyimpanan permanen memisahkan operasi kirim dan terima satu sama lain: Protocol adapter tidak lagi dapat melaporkan kembali ke perangkat jika saat ini tidak ada consumer yang terhubung. Alih-alih, itu hanya menyimpan pesan tanpa “mengetahui” jika atau kapan aplikasi bisnis akan membacanya.

Mencobanya

Saat menginstal Hono, Anda perlu men-deploy jaringan messaging AMQP atau kluster Kafka. Ada juga kemungkinan untuk mengonfigurasi Hono untuk menggunakan kedua sistem messaging. Kemudian, setiap tenant (subset perangkat dan konfigurasi) dapat dikonfigurasi untuk menggunakan AMQP atau Kafka. Proyek Hono menyediakan lingkungan sandbox yang dapat diakses publik di Internet di mana Anda dapat bereksperimen dengan Hono menggunakan messaging berbasis AMQP atau Kafka.

Contoh Praktis

Dalam bagian berikut, kami akan memandu Anda melalui contoh kecil tentang cara menggunakan messaging berbasis Apache Kafka di sandbox Hono. Anda akan mengirim pesan telemetri ke protocol adapter HTTP dan kemudian membacanya dari kluster Kafka.

Kami mensimulasikan perangkat yang terkoneksi Internet dengan mengirim perintah HTTP dari command line. Untuk ini, kami menggunakan alat open source populer curl. Jika saat ini belum terinstal di komputer Anda, silakan merujuk ke petunjuk instalasi di halaman utama curl. Untuk mensimulasikan aplikasi bisnis, kami menggunakan command-line client Hono, yang dapat diunduh dari halaman unduhan Hono. Harap dicatat bahwa Java harus terinstal setidaknya versi 11 untuk menjalankannya.

Jika salah satu perintah yang ditunjukkan di bawah ini tidak bekerja (yang selalu dapat terjadi dengan petunjuk seperti ini), silakan merujuk ke Panduan Messaging Kafka di mana penjelasan mencakup lebih banyak detail.

Mendaftarkan perangkat

Pertama, Anda perlu membuat tenant baru di sandbox untuk menghindari gangguan terhadap pengguna lain. Perintah berikut membuat tenant dengan ID acak dan mengonfigurasinya untuk menggunakan Kafka untuk messaging.

$ curl -i -H "content-type: application/json" --data-binary '{
"ext": {
"messaging-type": "kafka"
}
}' https://hono.eclipseprojects.io:28080/v1/tenants

The output should contain something along the lines of: {"id":"85f63e23-1b78-4156-8500-debcbd1a8d35"}.

Sekarang salin ID ini dan tetapkan sebagai variabel lingkungan sebagai berikut:

$ export MY_TENANT=85f63e23-1b78-4156-8500-debcbd1a8d35

Daftarkan perangkat untuk tenant:

$ curl -i -X POST https://hono.eclipseprojects.io:28080/v1/devices/$MY_TENANT

dan sekali lagi berikan ID yang dikembalikan sebagai variabel lingkungan sebagai berikut:

$ export MY_DEVICE=4412abe2-f219-4099-ae14-b446604ae9c6

Terakhir tetapkan kata sandi untuk perangkat:

$ export MY_PWD=my-pwd
$ curl -i -X PUT -H "content-type: application/json" --data-binary '[{
"type": "hashed-password",
"auth-id": "'$MY_DEVICE'",
"secrets": [{
"pwd-plain": "'$MY_PWD'"
}]
}]' https://hono.eclipseprojects.io:28080/v1/credentials/$MY_TENANT/$MY_DEVICE

Mengirim pesan

Sekarang setelah Anda mendaftarkan perangkat, Anda dapat mengirim dan menerima pesan.

Buka jendela terminal kedua untuk menerima pesan. Pergi ke direktori tempat Anda mengunduh command-line client Hono. Sekarang mulai client dengan perintah berikut, pastikan untuk mengganti my-tenant dengan ID tenant yang baru saja Anda buat:

# in directory where the hono-cli-*-exec.jar file has been downloaded to
$ java -jar hono-cli-*-exec.jar --spring.profiles.active=receiver,sandbox,kafka --tenant.id="my-tenant";

Client siap menerima pesan jika output berisi baris seperti berikut:
10:23:01.807 [vert.x-eventloop-thread-0] INFO org.eclipse.hono.cli.app.Receiver - Receiver [tenant: 85f63e23-1b78-4156-8500-debcbd1a8d35, mode: all] created successfully, hit ctrl-c to exit

Sekarang Anda dapat mengirim pesan dari perangkat simulasi Anda ke Hono. Untuk ini, kembali ke jendela terminal pertama. Perintah berikut mengirim pesan telemetri ke protocol adapter HTTP:

$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "content-type: application/json" --data-binary '{"temp": 42}' https://hono.eclipseprojects.io:8080/telemetry

Pesan sekarang harus dicetak di terminal kedua.

Anda juga dapat mengirim sebuah event:

$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "content-type: application/json" --data-binary '{"hello": "kafka"}' https://hono.eclipseprojects.io:8080/event

Sekarang Anda semoga berhasil mengirim pesan dari perangkat ke Hono dan menerima mereka dari kluster Kafka. Langkah selanjutnya, Anda dapat melihat contoh yang lebih detail di Panduan Messaging Kafka Hono. Ini juga menunjukkan kepada Anda cara mengirim perintah dari aplikasi bisnis ke perangkat dan meresponsnya. Jika Anda ingin mengejar lebih dalam, Anda mungkin ingin melihat spesifikasi API berbasis Kafka, yang dapat ditemukan di API Specifications Hono.

Kesimpulan

Sistem messaging adalah fondasi untuk fungsionalitas inti Eclipse Hono karena antarmukanya disediakan di atasnya. Mendukung Kafka bersama dengan AMQP 1.0 adalah perubahan yang sangat mendalam bagi Hono, di mana penekanan besar telah diberikan untuk memastikan bahwa antarmuka dapat dengan mudah dipetakan satu sama lain. Manfaat kunci Kafka adalah skalabilitasnya, jaminan urutannya, adopsi luasnya, dan beragam penawaran layanan komersial. Perbedaan utama dengan messaging AMQP adalah semua jenis pesan di-broker. Artinya pesan dapat diantar bahkan jika penerima terputus untuk sementara. Komunikasi juga terpisah dalam hal waktu sehingga umpan balik langsung dari penerima ke pengirim pesan tidak lagi mungkin. Dalam contoh praktis singkat, kami telah menunjukkan kepada Anda cara mengirim pesan dari perangkat simulasi ke sandbox Hono dan mengonsumsinya dari kluster Kafka.


Teknologi Industri

  1. Suhu Kritis Superkonduktor Elemental dan Suhu Tinggi (Kelvin)
  2. Kekuatan Dielektrik Isolator – Data Kunci untuk Insinyur Listrik
  3. Aturan Turunan Esensial: Referensi Cepat
  4. Aturan Dasar Antiturunan: Konstanta, Jumlah, dan Selisih
  5. Eclipse Hono Meluncurkan Registry Perangkat Berbasis MongoDB – Skalabel, Siap Produksi
  6. Eclipse Hono 1.0.0 Meluncur: Platform Konektivitas IoT Terpadu Open-Source
  7. Autentikasi Perangkat Aman dengan Sertifikat X.509 di Eclipse Hono
  8. PCB Tahan Lalu untuk Kondisi Ekstrim: Desain, Manfaat, dan Aplikasi
  9. Mengoptimalkan Desain PCB untuk Manufaktur: Strategi Utama dan Praktik Terbaik
  10. Manufaktur PCB di Era 5G: Tren & Tantangan