Network Programing
Oleh :
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 .
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:
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.
Skalabilitas
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
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).