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

Eclipse Hono mendukung Apache Kafka untuk pengiriman pesan

Eclipse Hono adalah proyek sumber terbuka untuk menghubungkan sejumlah besar perangkat heterogen ke back end (cloud). Hono mendefinisikan antarmuka layanan yang memungkinkan komunikasi seragam antar perangkat, yang mungkin menggunakan protokol yang sangat berbeda, serta aplikasi bisnis. Proyek ini telah ada selama beberapa waktu sekarang dan telah berhasil digunakan di Bosch IoT Device Management selama beberapa tahun. Apa yang baru adalah sekarang mendukung Apache Kafka untuk pengiriman pesan. Manfaat dan perubahan yang dihasilkan dalam penggunaan Hono diperkenalkan di artikel ini.

Data yang berasal dari perangkat diubah di Hono ke format pesan yang seragam oleh adaptor protokol (misalnya ada beberapa untuk MQTT, HTTP, dan CoAp) dan diteruskan ke sistem pesan. Aplikasi bisnis membaca pesan ini, yang merupakan pesan telemetri atau acara , langsung dari sistem pesan (mereka juga dapat menggunakan Perintah dan Kontrol untuk mengirim pesan ke perangkat dan menerima tanggapan). Untuk pengiriman pesan, yang bukan merupakan bagian dari Hono tetapi harus disediakan secara eksternal, sejauh ini protokol AMQP 1.0 telah digunakan.

Sejak versi 1.7, Hono mendukung Apache Kafka untuk pengiriman pesan sebagai pratinjau teknis . Fitur utama Hono adalah definisi dan implementasi API untuk meneruskan pesan ke dan dari sistem pesan. Karena definisi API didasarkan pada perpesanan dan bergantung langsung pada propertinya, mendukung sistem perpesanan baru adalah inovasi mendasar bagi Hono. Untuk semua API perpesanan di Hono (telemetri , acara , dan perintah dan kontrol ), spesifikasi baru berdasarkan Kafka telah dibuat, baik yang menghadap adaptor protokol maupun aplikasi bisnis. Perhatian dilakukan untuk memastikan bahwa mereka berperilaku semirip mungkin dengan API berbasis AMQP.

Manfaat

Apache Kafka adalah platform streaming acara terdistribusi yang dirancang untuk throughput yang sangat tinggi sambil memberikan jaminan tertentu dalam urutan pesan. Ini sangat cocok untuk persyaratan Hono terkait pengiriman pesan karena beberapa alasan. Manfaat utama adalah:

Perubahan

AMQP 1.0 adalah protokol komunikasi di mana rekan-rekan terhubung satu sama lain untuk bertukar pesan. Sebaliknya, cluster Kafka terdiri dari broker yang mengoordinasikan penulisan (dan pembacaan) data ke penyimpanan permanen. Perbedaan ini memiliki dua konsekuensi:Pertama, sebuah pesan tersedia untuk diambil untuk sementara waktu sebelum akhirnya dihapus. Untuk mencapai efek ini di Hono dengan AMQP, Anda biasanya menyediakan broker pesan terpisah di mana acara disimpan untuk menghindari kehilangan pesan jika aplikasi bisnis tidak tersedia untuk sementara. Dengan Kafka, setiap pesan disimpan. Ini termasuk pesan telemetri (waktu penyimpanan, bagaimanapun, tergantung pada konfigurasi topik telemetri di cluster Kafka). Kedua, berkomunikasi melalui penyimpanan permanen memisahkan operasi kirim dan terima dari satu sama lain:Adaptor protokol tidak dapat lagi melaporkan kembali ke perangkat jika saat ini tidak ada konsumen yang terhubung. Sebaliknya, itu hanya menyimpan pesan tanpa "mengetahui" apakah atau kapan aplikasi bisnis akan membacanya.

Mencobanya

Saat memasang Hono, Anda perlu menerapkan jaringan pesan AMQP atau klaster Kafka. Ada juga kemungkinan mengonfigurasi Hono untuk menggunakan keduanya sistem pesan. Kemudian, setiap tenant (subset dari perangkat dan konfigurasi) dapat dikonfigurasi untuk menggunakan AMQP atau Kafka. Proyek Hono menyediakan lingkungan kotak pasir yang dapat diakses publik di Internet tempat Anda dapat bereksperimen dengan Hono menggunakan perpesanan berbasis AMQP atau Kafka.

Contoh praktis

Berikut ini, kami memandu Anda melalui contoh kecil tentang cara menggunakan perpesanan berbasis Apache Kafka di kotak pasir Hono. Anda akan mengirim pesan telemetri ke adaptor protokol HTTP dan kemudian membacanya dari klaster Kafka.

Kami mensimulasikan perangkat yang mendukung Internet dengan mengirimkan perintah HTTP dari baris perintah. Untuk ini, kami menggunakan alat sumber terbuka yang populer curl . Jika saat ini tidak diinstal di komputer Anda, silakan lihat petunjuk instalasi di beranda curl. Untuk mensimulasikan aplikasi bisnis, kami menggunakan klien baris perintah Hono, yang dapat diunduh dari halaman unduhan Hono. Harap dicatat bahwa Java harus diinstal setidaknya di versi 11 untuk menjalankannya.

Jika salah satu perintah yang ditampilkan di bawah ini tidak berfungsi (yang selalu dapat terjadi dengan instruksi seperti itu), silakan merujuk ke Panduan Pesan Kafka di mana penjelasannya mencakup rincian lebih lanjut.

Mendaftarkan perangkat

Pertama, Anda perlu membuat penyewa baru di kotak pasir agar tidak mengganggu pengguna lain. Perintah berikut membuat penyewa dengan ID acak dan mengonfigurasinya untuk menggunakan Kafka untuk pengiriman pesan.

$ curl -i -H "tipe konten:aplikasi/json" --data-binary '{ "ekst":{ "jenis pesan":"kafka" } }' http://hono.eclipseprojects.io:28080/v1/tenants

Keluaran harus berisi sesuatu di sepanjang baris:{"id":"85f63e23-1b78-4156-8500-debcbd1a8d35"} .

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

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

Daftarkan perangkat untuk penyewa:

$ curl -i -X ​​POST http://hono.Eclipseprojects.io:28080/v1/devices/$MY_TENANT

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

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

Terakhir, tetapkan kata sandi untuk perangkat:

$ ekspor MY_PWD=sandi-saya $ curl -i -X ​​PUT -H "tipe konten:aplikasi/json" --data-binary '[{ "type":"hash-password", "auth-id":"'$MY_DEVICE'", "rahasia":[{ "pwd-plain":"'$MY_PWD'" }] }]' http://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. Buka direktori tempat Anda mengunduh klien baris perintah Hono. Sekarang mulai klien dengan perintah berikut, pastikan untuk mengganti my-tenant dengan ID penyewa yang baru saja Anda buat:

# di direktori tempat file hono-cli-*-exec.jar telah diunduh $ java -jar hono-cli-*-exec.jar --spring.profiles.active=receiver,sandbox,kafka --tenant.id="my-tenant"

Klien siap menerima pesan jika output berisi baris yang mirip dengan berikut ini:
10:23:01.807 [vert.x-eventloop-thread-0] INFO  org.eclipse.hono.cli. app.Receiver - Receiver [penyewa:85f63e23-1b78-4156-8500-debcbd1a8d35, mode:all] berhasil dibuat, tekan ctrl-c untuk keluar

Sekarang Anda dapat mengirim pesan dari perangkat simulasi Anda ke Hono. Untuk melakukan ini, beralih kembali ke jendela terminal pertama. Perintah berikut mengirimkan pesan telemetri ke adaptor protokol HTTP:

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

Pesan sekarang harus dicetak di terminal kedua.

Anda juga dapat mengirim acara :

$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "tipe konten:aplikasi/json" --data-binary '{"hello":"kafka"}' http://hono.eclipseprojects.io :8080/acara

Sekarang Anda seharusnya, semoga, berhasil mengirim pesan dari perangkat ke Hono dan menerimanya dari klaster Kafka. Sebagai langkah selanjutnya, Anda dapat melihat contoh yang lebih detail di Panduan Pesan Kafka Hono. Ini juga menunjukkan cara mengirim perintah dari aplikasi bisnis ke perangkat dan meresponsnya. Jika Anda ingin menggali lebih dalam, Anda mungkin ingin melihat spesifikasi API berbasis Kafka, yang dapat ditemukan di Spesifikasi API Hono.

Kesimpulan

Sistem pesan adalah dasar untuk fungsionalitas inti Eclipse Hono karena antarmuka disediakan di atasnya. Mendukung Kafka bersama AMQP 1.0 adalah perubahan yang sangat besar bagi Hono, di mana penekanan besar telah diberikan untuk memastikan bahwa antarmuka dapat dengan mudah dipetakan satu sama lain. Manfaat utama Kafka adalah skalabilitasnya, jaminan pemesanannya, adopsi skala luasnya, dan kekayaan penawaran layanan komersial. Perbedaan utama pengiriman pesan dengan AMQP adalah bahwa semua jenis pesan diperantarai. Artinya pesan dapat tersampaikan meskipun penerima terputus sesaat. Komunikasi juga dipisahkan dalam hal waktu sehingga umpan balik langsung dari penerima ke pengirim pesan tidak mungkin lagi. Dalam contoh praktis singkat, kami menunjukkan cara mengirim pesan dari perangkat simulasi ke sandbox Hono dan menggunakannya dari cluster Kafka.


Teknologi Industri

  1. Suhu Kritis untuk Superkonduktor
  2. Kekuatan Dielektrik untuk Isolator
  3. Aturan untuk Derivatif
  4. Aturan untuk Antiturunan
  5. Rilis registri perangkat berbasis MongoDB baru di Eclipse Hono
  6. Eclipse Hono 1.0.0 dirilis:Platform konektivitas IoT terbuka
  7. Otentikasi perangkat berbasis X.509 di Eclipse Hono
  8. PCB untuk Lingkungan yang Keras
  9. Desain Untuk Pembuatan PCB
  10. Manufaktur PCB untuk 5G