Message Broker

January 28, 2021 by

Message Broker
Kapan butuh message broker ?
contoh aplikasi toko online utk menghandle pemasangannya.
namanya Order Service (apps)=> mengirim email, notifikasi SMS (notification aplication).

Saat ada order masuk, kita akan melakukan email direct dari order service ke notification service. Jadi ketika request user masuk, kita akan kirim data emailnya. Rata-rata ketika buat aplikasi seperti ini skema nya. Kenyataanya biasanya jikalau notif service error, yg terjadi ketika melakukan request ke notif service dia akan mengalami error, entah error 500 atau yg lain tergantung yg membuat aplikasinya. Jika hal ni terjadi membuat yg lain terhambat. Dari sinilah terbentuk message broker.

Message broker adalah utility tambahan, jadi dari yang awalnya order service langsung direct ke notification service, ditambahkan di tengahnya dengan message broker, contohnya rabbitMQ, Apache kafka, ActiveMQ.
Jadi tidak langsung direct ke sistem , hal ini menguntungkan yaitu :
1. Tidak ketergantungan terhadap yg menyebabkan error karena direct langsung ke api / notif service
Data yg dikirim dari order service tetap bisa ditampung dan tanpa tergantung jika notif service mengalami kegagalan sistem.
jika ada aplikasi baru contohnya ada analytic ordernya mau tidak mau order service harus mengirim data ke analytic service. Artinya perlu melakukan development service dan ketergantungan lagi antara order service dan analitik service, solusinya menggunakan message broker.
2.  Load Balance
Mendistribusikan beban pekerjaan. Contoh aplikasi notif service itu lambat bngt contoh 1 detik hanya bisa 1 order untuk kirim email dengan tiba2 order service bisa 3 order per second, jika direct langsung maka menjadi lambat, maka perbandingannya 1 banding 3. Kejadian seperti ini membuat service lain jadi lambat. Karena mengikuti kemampuan dari notif service. Dengan message broker akan meload dengan balance. Teknik nya jika pengirim data lebih kencang atau lebih cepat di banding yg memproses/menerima datanya, maka aplikasi notif service cukup ditambahkan dengna fitur yg sama supaya seimbang. Contohnya mengintall 3 notif service (3 node) supaya mengimbangi data yg dikirim ke order service.
Terdistribusi beban pekerjaan  

Tantangan menggunakan message broker :
1. Order service ketergantungan dengan message broker dan notif ketergantungan dengan message broker, jika ada masalah dengan message broker maka yg lain jadi masalah. Kita harus memilih message broker yang bagus dan handal, contohnya apache kafka dan rabbitMQ
2. Cara kerja aplikasi
Ketika mengirim data ke message broker tidak tahu sukses atau gagal, paradigma cara berpikir berubah, kita merubah synchronous menjadi asynchronous.

0 comments:

Post a Comment