Instalasi dan konfigurasi Message Broker dengan RabbitMQ

RabbitMQ Apa itu Message Broker? Message Broker yaitu suatu penerjemah atau perantara pesan yang dikirimkan oleh pengirim kepada penerima dimana pesan yang dikirim lewat message broker bisa dilakukan validasi, transformasi, dan mengatur rute pesan sesuai konfigurasi yang kita inginkan. ada banyak aplikasi untuk Message Broker seperti NATS Messaging, Apache Kafka, MQTT dan masih banyak lagi. namun di tulisan ini saya akan menggunakan rabbitmq.

Langkah 1: Instalasi

Tambahkan repo rabbitmq

$ echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
$ wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

Update repo dan instal rabbitmq server

$ sudo apt update
$ sudo apt install rabbitmq-server

Langkah 2: Service

Buat service rabbitmq-server otomatis mulai saat booting dan mulai jalankan

$ sudo systemctl enable rabbitmq-server
$ sudo systemctl start rabbitmq-server

Jika ada warning saat memulai service rabbitmq seperti di bawah ini

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_TIME = "id_ID.UTF-8",
    LC_MONETARY = "id_ID.UTF-8",
    LC_ADDRESS = "id_ID.UTF-8",
    LC_TELEPHONE = "id_ID.UTF-8",
    LC_NAME = "id_ID.UTF-8",
    LC_MEASUREMENT = "id_ID.UTF-8",
    LC_IDENTIFICATION = "id_ID.UTF-8",
    LC_NUMERIC = "id_ID.UTF-8",
    LC_PAPER = "id_ID.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.

LANGUAGE dan LC_ALL yg nilai nya (unset) itu berarti pada field tersebut belum kita atur. Kita tambahkan value ke field tersebut agar tidak muncul pesan warning

$ export LANGUAGE="en_US.UTF-8"
$ export LC_ALL="en_US.UTF-8"

Langkah 3: Buat Pengguna (optional)

Untuk user login default pada rabbitmq adalah username guest dan password guest. Untuk user default hanya bisa melakukan login pada localhost saja dan tidak bisa melakukan remote jarak jauh pada server. Maka dari itu kita buat user untuk administrator agar web management rabbitmq-server bisa di remote jarak jauh.

$ sudo rabbitmqctl add_user admin password-untuk-admin
Creating user "admin"
$ sudo rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]
$ sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/"

Langkah 4: Web Management (optional)

Kita fungsikan untuk management console rabbitmq-server via web GUI

$ sudo rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@example... started 6 plugins.

kemudian buka web management pada browser dengan alamat http://{hostname}:15672/

dah gitu aja, see ya~