Python

Pengenalan Message Broker dengan RabbitMQ

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 
Pengenalan Message Broker dengan RabbitMQ

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

Pengenalan Message Broker dengan RabbitMQ

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 😀

Leave a Reply

Your email address will not be published. Required fields are marked *