Anda di halaman 1dari 6

Message Queue dan protokol MQTT

Network Programing

Oleh :

I PUTU ARYA RADITYA UTAMA (160030543)

INSTITUT TEKNOLOGI DAN BISNIS ITB


(STIKOM BALI)
2022
Message Queue dan protokol MQTT

1. Pengertian Message Queue

Mungkin banyak yang baru mendengar istilah message queue ini, karena
biasanya komponen ini tidak diajarkan dalam perangkat lunak yang
skalanya kecil. Singkatnya, Message Queue adalah suatu nama untuk
komponen dalam software engineering yang tugasnya mengirim dan
menerima data. Message Queue ini bisa digunakan untuk
menyambungkan dua software berbeda .

Message Queue adalah nama umum yang digunakan untuk suatu


komponen yang bertugas untuk menerima data, menyimpannya dalam
suatu rentang waktu, dan mengirimkannya suatu / beberapa tempat.

Kalau di dunia nyata, mirip tujuannya dengan adanya jalur antrian.

Gambar di atas adalah ilustrasi antara bank yang memiliki jalur antrian dan
yang tidak. Tanpa jalur antrian, sebuah bank akan kesulitan untuk
melayani nasabah karena nasabah akan berebutan ke teller. Dengan
adanya jalur antiran, nasabah dengan rapi dapat satu persatu menuju
teller yang kosong.
Bagaimana ilustrasi di atas dapat dikatakan mirip dengan sebuah Message
Queue?

Seperti halnya Message Queue, jalur antrian melakukan ketiga hal ini:

 Menerima nasabah (menerima data, nasabah bisa dikaitkan dengan


data).
 Kemudian nasabah tersebut ‘disimpan’ dalam suatu rentang waktu
pada jalur tersebut (menyimpan data).
 Saat teller sudah siap, nasabah dapat dikirim ke bilik teller tersebut
untuk dilayani (mengirim data).

Kegunaan Message Queue

Contoh penggunaan Message Queue (MQ) yang paling sederhana adalah


meletakan komponen MQ di antara client dengan web service. Mungkin
kamu akan bertanya, bukannya ini redundan dan hanya menambah
kompleksitas sistem? Jawabannya, tergantung.

Keandalan (Reliability)

Jika web service kamu harus dapat menerima 100% request tanpa ada
yang hilang, menggunakan MQ menjadi penting. Jika kehilangan data
dapat ditolerir, penggunaan MQ menjadi redundan dan tidak perlu. Disini
faktor yang menentukan adalah reliability, seberapa kamu ingin service
kamu reliable.

Dengan kemampuan menyimpan data (walaupun hanya dalam rentang


waktu yang cukup terbatas), MQ dapat memberikan tempat peristirahatan
sementara untuk data yang akan dikirim. Jika sewaktu-waktu service yang
menerima data tersebut mati, data yang akan dikirim masih tetap aman
disimpan sementara di dalam MQ. Pada kasus ini, MQ memberikan waktu
untuk bernafas kalau-kalau service yang ada dibelakang MQ mati. MQ
bisa membantu tidak ada request yang hilang selama service tersebut
mati.
Pada ilustrasi bank, bayangkan ketika semua teller izin untuk makan siang.
Jika tidak ada antrian, akan terjadi keributan diantara nasabah. Karena
adanya antrian, nasabah tidak perlu khawatir tidak akan dilayani selama
masih berada di jalur antrian.

MQ dapat digunakan untuk menangani kasus reliability karena biasanya,


MQ dapat dijalankan lebih reliable dibandingkan web service. Asumsi ini
tidak selalu benar, jadi cek lagi apakah MQ yang kamu gunakan memang
lebih reliabledibandingkan sistem di belakangnya.

Skalabilitas

Message Queue dapat meningkatkan skalabilitas suatu sistem dengan


cara menyebarkan data ke satu atau lebih sistem. Kebanyakan Message
Queue dapat mengirimkan data yang sama ke berbagai tempatnya
berbeda. Contohnya, client mengirimkan satu request pembayaran,
kemudian MQ akan mengirimkannya ke berbagai sistem yang berbeda
misalnya seperti payment service, user service, dan shopping cart service.

Selain ke berbagai sistem yang berbeda, MQ juga dapat mengirimkan ke


sistem yang sama namun berbeda mesin loh!

Jadi seperti ilustrasi bank di atas, ada banyak teller yang menunggu untuk
melayani nasabah. Teller adalah service kalian, dan nasabah adalah data
kalian. Dengan demikian, kalian bisa menambahkan service (pada ilustrasi
di atas, menambahkan teller) lagi dengan mudah jika memang dibutuhkan.

2. Protokol MTQQ

Message Queue Telemetry Transport (MQTT) adalah sebuah protokol


komunikasi data machine to machine (M2M) yang berada pada layer aplikasi.
MQTT bersifat lightweight message artinya MQTT berkomunikasi dengan
mengirimkan data pesan yang memiliki header berukuran kecil yaitu hanya
sebesar 2 byte untuk setiap jenis data, sehingga dapat bekerja di dalam
lingkungan yang terbatas sumber dayanya seperti kecilnya bandwidth dan
terbatasnya sumber daya listrik. Protokol MQTT juga menjamin terkiriminya
semua pesan walaupun koneksi terputus. Metode yang digunakan oleh protokol
MQTT adalah publish/subscribe sebagai metode komunikasinya.
Publish/subscribe adalah sebuah pola pertukaran pesan di dalam komunikasi
jaringan dimana pengirim data disebut publisher dan penerima data disebut
dengan subscriber. Metode publish/subscribe memiliki beberapa kelebihan salah
satunya yaitu loose coupling atau decouple dimana berarti antara publisher dan
subscriber tidak saling mengetahui keberadaannya. Terdapat 3 buah decoupling
yaitu time decoupling, space decoupling dan synchronization decoupling. Time
decoupling adalah sebuah kondisi di mana publisher dan subscriber tidak harus
saling aktif pada waktu yang sama, space decoupling adalah dimana publisher
dan subscriber aktif di waktu yang sama akan tetapi antara publisher dan
subscriber tidak saling mengetahui keberadaan dan identitas satu sama lain.

Pengiriman data pada MQTT didasari oleh topik, topik ini nantinya yang akan
menentukan pesan dari publisher harus dikirim pada subscriber yang mana, topik
ini dapat bersifat hirarki. MQTT topic memiliki tipe data string dan untuk
perbedaan hirarki atau level dari topik digunakan tanda baca “/” (Solace, n.d.).
MQTT memiliki 3 level quality of service (QOS) dalam pengiriman pesannya yaitu
0,1,2 (Lampkin, et al., 2012). dan yang terakhir adalah synchronization
decoupling kondisi dimana pengaturan event baik itu penerimaan atau
pengiriman pesan di sebuah node hingga tidak saling mengganggu satu sama
lain (Adi, et al., 2016).

Anda mungkin juga menyukai