Easy Coding Logo

Dipublikasi pada tanggal 1 Oktober 2024

Apa Itu Message Broker? Pengertian, Fungsi, dan Contoh

Programming
Apa Itu Message Broker? Pengertian, Fungsi, dan Contoh

Di era digital saat ini, komunikasi antar aplikasi dan layanan semakin kompleks. Seiring dengan pertumbuhan aplikasi berbasis mikroservis dan sistem terdistribusi, kebutuhan akan mekanisme komunikasi yang andal dan efisien menjadi sangat penting. Di sinilah message broker berperan sebagai solusi yang efektif. Dalam artikel ini, kita akan membahas apa itu message broker, fungsinya, jenis-jenis yang ada, keuntungan menggunakan message broker, contoh-contoh yang populer, serta kasus penggunaannya.


Pengertian Message Broker

Message broker adalah perangkat lunak yang bertindak sebagai perantara dalam komunikasi antara aplikasi, layanan, atau sistem yang berbeda.

Tujuan utama dari message broker adalah untuk memastikan bahwa pesan dikirim dari pengirim ke penerima dengan cara yang andal dan efisien. Dalam arsitektur berbasis pesan, message broker memainkan peran kunci dalam mengatur, menyimpan, dan mengirimkan pesan.



Fungsi Utama Message Broker

Berikut merupakan beberapa fungsi utama Message Broker:

1. Pengiriman Pesan

Mengatur pengiriman pesan dari pengirim ke penerima. Pesan dapat dikirimkan secara langsung atau melalui antrian pesan.

2. Antrian Pesan

Menyimpan pesan sementara sampai penerima siap untuk memprosesnya. Ini memastikan bahwa pesan tidak hilang jika penerima sedang sibuk atau tidak tersedia.

3. Pengaturan Ulang Pesan

Mengatur urutan pesan untuk memastikan bahwa pesan diproses dalam urutan yang benar.

4. Routing Pesan

Meneruskan pesan ke penerima yang tepat berdasarkan aturan routing yang telah ditentukan.

5. Pemisahan Pengirim dan Penerima

Memisahkan pengirim dan penerima sehingga mereka tidak perlu saling mengenal atau terhubung secara langsung.



Jenis-Jenis Message Broker

1. Point-to-Point (P2P)

Dalam model ini, pesan dikirim dari satu pengirim ke satu penerima melalui antrian pesan. Penerima mengambil pesan dari antrian dan memprosesnya.

2. Publish/Subscribe (Pub/Sub)

Dalam model ini, pesan diterbitkan oleh pengirim (publisher) dan dikirimkan ke satu atau lebih penerima (subscribers) yang telah berlangganan ke topik tertentu. Semua penerima yang berlangganan ke topik tersebut akan menerima salinan pesan.



Keuntungan Menggunakan Message Broker

1. Reliabilitas

Message broker memastikan bahwa pesan dikirim dengan andal dan tidak hilang, bahkan jika penerima tidak tersedia sementara waktu.

2. Skalabilitas

Memungkinkan aplikasi untuk diskalakan secara horizontal dengan menambahkan lebih banyak penerima tanpa perlu mengubah logika pengiriman pesan.

3. Decoupling

Memisahkan pengirim dan penerima sehingga mereka tidak perlu saling mengenal atau bergantung satu sama lain. Ini membuat sistem lebih fleksibel dan mudah diubah.

4. Peningkatan Kinerja

Dengan menyimpan pesan dalam antrian, message broker dapat mengelola beban kerja yang tinggi dan meningkatkan kinerja sistem secara keseluruhan.

5. Prioritas Pesan

Mendukung prioritas pesan sehingga pesan yang lebih penting dapat diproses lebih cepat daripada pesan yang kurang penting.



Contoh Message Broker

Berikut 4 contoh message broker yang populer:

1. Apache Kafka

Message broker open-source yang dirancang untuk menangani streaming data dalam jumlah besar dengan latensi rendah.

2. RabbitMQ

Message broker yang mendukung berbagai protokol pengiriman pesan dan sangat populer dalam arsitektur microservices.

3. ActiveMQ

Message broker open-source yang mendukung JMS (Java Message Service) dan dapat diintegrasikan dengan berbagai aplikasi dan sistem.

4. Amazon SQS (Simple Queue Service)

Layanan antrian pesan yang dikelola sepenuhnya oleh Amazon Web Services (AWS) dan memungkinkan pengiriman pesan yang andal dan terukur.



Kasus Penggunaan Message Broker

Pada Kasus ini akan diberi contoh menggunakan aplikasi dimana jika terjadi Order Masuk maka akan melakukan Notifikasi SMS, Notifikasi Email, dan Notifikasi Admin.

Tanpa Menggunakan Message Broker

Tanpa menggunakan message broker, aplikasi harus langsung mengirimkan notifikasi SMS dan email setiap kali ada order baru yang masuk. Jika salah satu layanan (SMS, Email, atau Admin) mengalami kegagalan, data bisa hilang atau proses bisa terhenti. Berikut ilustrasinya:




Apa itu message broker - tanpa menggunakan message broker



  1. Order Masuk
  2. Aplikasi langsung mengirim notifikasi SMS
  3. Aplikasi langsung mengirim notifikasi Email
  4. Aplikasi langsung mengirim notifikasi Admin

Resiko yang dapat terjadi jika tidak menggunakan Message Broker adalah jika salah satu layanan gagal, proses tidak dapat dilanjutkan dan pesan bisa hilang.



Menggunakan Message Broker

Dengan menggunakan message broker, aplikasi mengirimkan pesan ke broker terlebih dahulu, yang kemudian mendistribusikan pesan tersebut ke layanan notifikasi SMS, Email, dan Admin. Jika ada kegagalan, pesan akan tetap disimpan di broker sampai layanan tersedia kembali untuk memprosesnya. Berikut ilustrasinya:




Apa itu message broker - dengan menggunakan message broker



  1. Order Masuk
  2. Aplikasi mengirim pesan ke message broker
  3. Message broker menyimpan pesan dan mendistribusikannya ke layanan notifikasi SMS dan email
  4. Layanan notifikasi SMS menerima pesan dari broker dan mengirim SMS
  5. Layanan notifikasi email menerima pesan dari broker dan mengirim email
  6. Layanan notifikasi email menerima pesan dari broker dan mengirim notifikasi ke admin

Salah satu manfaat menggunakan Message Broker adalah jika salah satu layanan gagal, message broker akan menyimpan pesan dan mengirimkannya kembali saat layanan tersedia, memastikan bahwa tidak ada pesan yang hilang.



Kesimpulan

Message broker adalah komponen penting dalam arsitektur berbasis pesan yang memastikan pengiriman pesan yang andal dan efisien antara aplikasi, layanan, atau sistem yang berbeda. Dengan berbagai keuntungan seperti reliabilitas, skalabilitas, dan decoupling, message broker membantu membangun sistem yang fleksibel, mudah diubah, dan mampu menangani beban kerja yang tinggi. Contoh populer seperti Apache Kafka, RabbitMQ, dan Amazon SQS dimana memberikan kebebasan kepada developer atau programmer untuk memilih message broker yang sesuai dengan kebutuhan mereka.