Mengenal Message Queue

Bagikan di

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 jadi dapat berkomunikasi, loh!

Gambaran Umum Message Queue

 

Pengertian Message Queue

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.

Ilustrasi jalur antrian yang mirip tugasnya dengan Message Queue

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)

Keandalan Message Queue

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.

Ilustrasi jalur antrian yang mirip tugasnya dengan Message Queue

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 reliable dibandingkan sistem di belakangnya.

 

Skalabilitas

Skalabilitas Message Queue

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!

Ilustrasi jalur antrian yang mirip tugasnya dengan Message Queue

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.

 


Bagikan di


Kolom Diskusi

Sedang memuat...