Message Broker adalah middleware yang digunakan sebagai perantara yang menghubungkan publisher/producer ke subscriber/consumer
producer adalah program yang mengirimkan message sedangkan consumer adalah program yang menerima message. Message dikirimkan melalui topik yang sama
Ada beberapa contoh message broker yang terkenal seperti RabbitMQ, Apache Kafka, ActiveMQ
Pada artikel ini kita akan membahas sedikit instalasi RabbitMQ message broker dan cara berkomunikasi antara producer ke consumer
Instalasi RabbitMQ
RabbitMQ merupakan salah satu message broker open source yang paling banyak digunakan
RabbitMQ is the most widely deployed open source message broker.
https://www.rabbitmq.com/
RabbitMQ Server dapat diinstall di berbagai macam platform seperti Linux (Debian, Ubuntu | RHEL, CentOS, Fedora) , Windows, MacOS
Kita akan coba install RabbitMQ Server di lingkungan Ubuntu 20.04
Tambahkan Repository Signing Key
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
Enable apt HTTPS Transport
sudo apt install apt-transport-https -y
Tambahkan RabbitMQ repository
echo "deb https://dl.bintray.com/rabbitmq-erlang/debian focal erlang-22.x" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
kita gunakan focal karena menggunakan Ubuntu 20.04, Jika distro lainnya disesuaikan
focal for Ubuntu 20.04 bionic for Ubuntu 18.04 xenial for Ubuntu 16.04 buster for Debian Buster stretch for Debian Stretch
Install RabbitMQ
sudo apt install rabbitmq-server -y
untuk melihat status RabbitMQ Server telah berjalan
systemctl status rabbitmq-server.service

Perintah untuk enable server (jika diperlukan)
sudo systemctl enable rabbitmq-server
Produce dan Consume
Kita akan coba buat program untuk producer yang mengirimkan text dan consumer akan menerimanya secara real time
Kita gunakan RabbitMQ Python 101 untuk script producer dan consumernya. Penjelasan dari script Python juga cukup jelas didokumentasinya tersebut
Kita install terlebih dahulu library Pika
pip install pika
Buat file send.py
#!/usr/bin/env python import pika connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') print(" [x] Sent 'Hello World!'") connection.close()
Buat file receive.py
#!/usr/bin/env python import pika, sys, os def main(): connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(" [x] Received %r" % body) channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() if __name__ == '__main__': try: main() except KeyboardInterrupt: print('Interrupted') try: sys.exit(0) except SystemExit: os._exit(0)
Buka 2 terminal dan jalankan send.py serta receive.py
Ketika producer yaitu send.py dijalankan maka akan mengirimkan text “Hello world!” dan receive.py akan menerima message berupa text tersebut

Ketika text di send.py diedit maka message yang diterima receive.py juga berubah sesuai dengan text yang baru
Sekian tutorial message broker di RabbitMQ semoga bermafaat 😀