Haruskah saya menggunakan protokol MQTT?


8

Saya berencana untuk mulai menerapkan use case IoT di bawah ini.

Gunakan kasing

Perangkat IoT akan mengirim pesan 100 menit / menit ke gateway melalui repeater dan gateway akan mentransfer pesan ke cloud. Saya ingin melacak karyawan di suatu organisasi. Sensor akan diperbaiki pada kartu ID mereka. Sensor mengirim data terkait lokasi (sekitar 15KB / pesan) ke gateway melalui pengulang. Ini untuk tujuan analitis. Setelah data diteruskan ke cloud, saya akan melakukan beberapa analisis dan menyimpan ke dalam DB dan ditampilkan di halaman web. Berdasarkan data analitik ini, saya akan menunjukkan lokasi pengguna saat ini dan juga lokasi pengguna yang bergerak dalam rentang waktu tertentu (1 jam atau 2 jam atau 1 hari terakhir).

Saya akan melakukan beberapa pemrosesan data dan mengirimkannya ke front end / DB.

Saya telah mempelajari dasar-dasar IoT dan arsitekturnya. Kemudian saya memutuskan untuk menggunakan arsitektur stack "SMACK" (Spark, Mesos, Akka, Cassandra, Kafka).

Saya memutuskan untuk menggunakan "klien asli Kafka" di gateway untuk mempublikasikan pesan ke cloud.

Haruskah saya menggunakan protokol MQTT untuk mentransfer pesan ke Kafka? Atau MQTT tidak diperlukan untuk use case di atas?

Jika ya, apa manfaat menggunakan MQTT dengan arsitektur "SMACK"?


2
1,5 Megabita per menit? Per karyawan, sepanjang hari? Lupakan protokol, Anda mungkin harus mengambil langkah mundur dan mempertimbangkan kembali data itu sendiri, menemukan cara untuk menyaringnya sebelum transmisi.
Chris Stratton

Pikiranku persis (+1). Berapa banyak karyawan yang Anda miliki? Pernah di situs (ish) besar dengan 2.000 karyawan, Anda melacak lokasi mereka hampir sekali per detik - siapa yang butuh akurasi itu? Apa yang bisa kamu lakukan dengan itu? Dan mengapa perlu 15kB untuk lat / long? Apa sisanya, dan seberapa sering itu berubah?
Mawg mengatakan mengembalikan Monica

Hanya ingin tahu - bagaimana Anda melacak Id? RFID pasif jarak jauh? Bluetooth? Jika selain RFID pasif, saya dapat melihat masalah baterai.
Mawg mengatakan mengembalikan Monica

Jawaban:


5

Anda tidak harus menggunakan MQTT. Klien Kafka yang terinstal pada kartu ID karyawan dapat mengirim data ke broker kafka di cloud secara langsung. Jadi saat Anda menggunakan Kafka untuk gateway, Anda sebenarnya bisa menggunakan kafka untuk sensor itu sendiri.

Kafka dan MQTT tidak dapat dipertukarkan, mereka memiliki sisi kuat yang berbeda (konsumsi energi, konsumsi bandwidth, throughtput ...) tapi saya pikir Anda tahu itu, dengan asumsi dari kompleksitas tumpukan Anda. Kafka dapat menangani 100rb pesan / menit.

Jika Anda tetap memutuskan untuk menggunakan MQTT, berikut adalah posting blog tentang bagaimana IBM menggunakan MQTT dan Kafka dalam proyek yang sama. Proyek mereka juga tentang mobilitas, jadi saya pikir itu mungkin benar-benar membantu.

Mengelola perangkat IoT dengan Kafka dan MQTT


atayenel, Terima kasih telah menjelaskan secara detail. Dalam kasus saya, saya harus menggunakan gateway sebagai gantinya langsung mendorong pesan dari sensor. Google (MQTT) dan penyedia layanan IBM IOT menggunakan MQTT? Setelah membaca tautan di bawah ini, saya memiliki beberapa kebingungan ... Apakah Anda tahu mengapa, Apakah ada alasan khusus? cloud.google.com/iot/docs/concepts/protocols
SKK

Bisakah Kafka menangani jumlah data itu?
Mawg mengatakan mengembalikan Monica

Kafka lebih baik daripada mqtt pada throughput data. Jadi jika mqtt menanganinya, kafka juga bisa menanganinya.
atakanyenel

@atayenel terima kasih atas komentar Anda. Apa yang Anda sarankan kepada saya tentang perkiraan persyaratan perangkat keras minimum untuk kasus penggunaan saya?
SKK

@ SKK Saya tidak bisa mengatakannya dengan pasti, tetapi Anda dapat melihat pertanyaan ini .
atakanyenel

2

Tidak ada masalah dengan hampir semua jenis broker MQTT untuk menangani beban ini, terutama untuk pesan qos = 0 (mungkin dalam kasus Anda). Kami memiliki beban konstan ke broker kami dengan 100.000 pesan masuk (0,5KB) per detik (+ SSL). Masalahnya mungkin muncul dari sisi lalu lintas, bukan dari pps.

Mengenai arsitektur sistem Anda, saran pribadi saya - cobalah membuatnya sesederhana mungkin. Dan rata-rata sederhana - hanya beberapa komponen / layanan perantara. Jika Anda dapat menghubungkan langsung dua layanan - lakukanlah. Anda akan selalu memiliki kemungkinan untuk membuatnya lebih rumit ketika Anda akan mulai menambahkan fitur.


Terima kasih. Apakah Anda ingin saya menggunakan arsitektur sederhana daripada SMACK?
SKK

Bisakah Anda melihat iot.stackexchange.com/q/2718/5382 ini ?
SKK

Ini sepenuhnya terserah Anda, tetapi menurut pendapat saya, saya akan membuatnya sesederhana mungkin, hanya berkonsentrasi pada tugas-tugas penting di awal. Kasus biasa adalah bahwa pemahaman Anda tentang proyek sebelum dan sesudah (atau di tengah) sama sekali berbeda dan sering Anda memiliki kesimpulan akhir "jika saya melakukannya lagi saya akan melakukannya berbeda"))
shal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.