RabbitMQ adalah perangkat lunak perantara pesan open source yang awalnya menerapkan protokol AMQP (Advanced Message Queuing Protocol), dan sementara itu telah dikembangkan dan diperluas untuk mendukung protokol lain seperti STOMP (Streaming Text Oriented Messaging Protocol), dan MQTT ( Pengiriman Telemetri Antrian Pesan).
Perangkat lunak antrean pesan/perantara pesan digunakan untuk mengirim dan menerima pesan antara sistem, aplikasi, dan layanan terdistribusi. RabbitMQ ditulis dalam bahasa pemrograman Erlang, ia menawarkan dukungan untuk antarmuka klien dan pustaka untuk semua bahasa pemrograman utama termasuk Python, NodeJS, Java, PHP, dll.
Dalam tutorial ini, saya akan menunjukkan cara menyiapkan Cluster RabbitMQ di Server Ubuntu 18.04. Saya akan menginstal RabbitMQ Cluster menggunakan tiga server Ubuntu, mengaktifkan RabbitMQ Management, dan Menyiapkan kebijakan HA untuk semua node.
Prasyarat
- 3 atau lebih Server Ubuntu 18.04
- 10.0.15.21 hakase-ubuntu01
- 10.0.15.22 hakase-ubuntu02
- 10.0.15.23 hakase-ubuntu03
- Hak istimewa root
Apa yang akan kita lakukan?
- Siapkan File Host
- Instal Server RabbitMQ
- Aktifkan Plugin Manajemen
- Menyiapkan Firewall UFW
- Siapkan Cluster RabbitMQ
- Siapkan Pengguna Administrator Baru
- Pencerminan Antrian Pengaturan RabbitMQ
- Pengujian
Langkah 1 - Siapkan File Host
Pada langkah ini, kita akan mengedit file '/etc/hosts' di semua server dan memetakan setiap alamat IP server sebagai nama host.
Edit file '/etc/hosts' menggunakan editor vim.
sudo vim /etc/hosts
Sekarang rekatkan konfigurasi berikut di sana.
10.0.15.21 hakase-ubuntu01 10.0.15.22 hakase-ubuntu02 10.0.15.23 hakase-ubuntu03
Simpan dan keluar.
Langkah 2 - Instal Server RabbitMQ
Sebelum menginstal server RabbitMQ, pastikan semua repositori diperbarui.
Jalankan perintah berikut.
sudo apt update
sudo apt upgrade
Sekarang instal paket server RabbitMQ dari repositori Ubuntu menggunakan perintah apt di bawah ini.
sudo apt install rabbitmq-server -y
Dan setelah penginstalan selesai, mulai layanan RabbitMQ dan aktifkan untuk diluncurkan setiap kali sistem boot.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Server RabbitMQ telah diinstal pada Ubuntu 18.04.
Langkah 3 - Aktifkan Plugin Manajemen RabbitMQ
Pada langkah ini, kita akan mengaktifkan plugin manajemen RabbitMQ. Ini adalah antarmuka yang memungkinkan Anda untuk memantau dan menangani server RabbitMQ dari browser web, berjalan pada port TCP default '15672'.
Aktifkan plugin manajemen RabbitMQ dengan menjalankan perintah di bawah ini.
sudo rabbitmq-plugins enable rabbitmq_management
Pastikan tidak ada error, lalu restart layanan RabbitMQ.
sudo systemctl restart rabbitmq-server
Plugin RabbitMQ Management telah diaktifkan.
Langkah 4 - Siapkan Firewall UFW
Dalam tutorial ini, kita akan mengaktifkan firewall UFW Ubuntu. Kita perlu membuka beberapa port yang akan digunakan oleh server RabbitMQ.
Tambahkan layanan ssh ke firewall UFW dan aktifkan layanan firewall.
sudo ufw allow ssh
sudo ufw enable
Sekarang tambahkan port tcp RabbitMQ baru '5672,15672,4369,25672'.
sudo ufw allow 5672,15672,4369,25672/tcp
Kemudian periksa daftar port firewall UFW.
sudo ufw status
Konfigurasi firewall UFW Ubuntu telah selesai, dan kita siap untuk menyiapkan Cluster RabbitMQ.
Langkah 5 - Siapkan Cluster RabbitMQ
Untuk mengatur cluster RabbitMQ, kita perlu memastikan file '.erlang.cookie' sama di semua node. Kami akan menyalin file '.erlang.cookie' pada direktori '/var/lib/rabbitmq' dari 'hakase-ubuntu01' ke node lain 'hakase-ubuntu02' dan 'hakase-ubuntu03'.
Salin file '.erlang.cookie' menggunakan perintah scp dari 'hakase-ubuntu01'.
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
Pastikan tidak ada kesalahan pada kedua server.
Selanjutnya, kita perlu mengatur 'hakase-ubuntu02' dan 'hakase-ubuntu03' untuk bergabung dengan cluster 'hakase-ubuntu01'.
Catatan:
- Jalankan perintah di bawah ini pada server hakase-ubuntu02' dan 'hakase-ubuntu03'.
Mulai ulang layanan RabbitMQ dan hentikan aplikasi.
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app
Sekarang biarkan server RabbitMQ di kedua node bergabung dengan cluster di 'hakase-ubuntu01', lalu jalankan aplikasinya.
sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app
Jika sudah selesai, cek status cluster RabbitMQ.
sudo rabbitmqctl cluster_status
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Cluster RabbitMQ telah dibuat, dengan hakase-ubuntu01, hakase-ubuntu02, dan hakase-ubuntu03 sebagai anggota.
Langkah 6 - Siapkan Pengguna Administrator Baru
Dalam tutorial ini, kita akan membuat user admin baru untuk server RabbitMQ kita dan menghapus user 'guest' default. Kami akan membuat pengguna baru dari 'hakase-ubuntu01', dan itu akan secara otomatis direplikasi ke semua node di cluster.
Tambahkan pengguna baru bernama 'hakase' dengan sandi '[email protected]'.
sudo rabbitmqctl add_user hakase [email protected]
Siapkan pengguna 'hakase' sebagai administrator.
sudo rabbitmqctl set_user_tags hakase administrator
Dan berikan izin pengguna 'hakase' untuk memodifikasi, menulis, dan membaca semua vhost.
sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"
Sekarang hapus pengguna 'tamu' default.
sudo rabbitmqctl delete_user guest
Dan periksa semua pengguna yang tersedia.
sudo rabbitmqctl list_users
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Pengguna administrator RabbitMQ baru telah dibuat, dan pengguna 'tamu' default dihapus.
Langkah 7 - Pencerminan Antrian Pengaturan RabbitMQ
Secara default, isi antrian dalam cluster RabbitMQ terletak pada satu node (node tempat antrian dideklarasikan).
Setup ini adalah keharusan, kita perlu mengkonfigurasi cluster 'ha policy' untuk mirroring antrian dan replikasi ke semua node cluster. Jika node yang menghosting master antrian gagal, mirror terlama akan dipromosikan ke master baru selama itu disinkronkan, tergantung pada kebijakan 'ha-mode' dan 'ha-params'.
Di bawah ini beberapa contoh tentang kebijakan ha RabbitMQ.
Siapkan kebijakan ha bernama 'ha-all' yang akan dicerminkan oleh semua antrean di cluster RabbitMQ ke semua node di cluster.
sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'
Siapkan kebijakan ha bernama 'ha-dua' yang semua nama antrian dimulai dengan 'dua'. akan dicerminkan ke dua node di cluster.
sudo rabbitmqctl set_policy ha-two "^two\." \
'{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
Siapkan kebijakan ketersediaan tinggi bernama 'ha-nodes' yang akan berisi semua antrian di mana namanya dimulai dengan 'node'. Kami akan melakukan mirroring ke dua node tertentu 'hakase-ubuntu02' dan 'hakase-ubuntu03' di cluster.
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
'{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'
Kebijakan RabbitMQ daftar ha.
sudo rabbitmqctl list_policies;
RabbitMQ menghapus kebijakan ha tertentu.
sudo rabbitmqctl clear_policy ha-two
Langkah 8 - Pengujian
Buka browser web Anda dan ketik alamat IP node dengan port '15672'.
http://10.0.15.21:15672/
Ketik nama pengguna 'hakase' dengan sandi '[email protected]'.
Dan Anda akan mendapatkan dashboard admin RabbitMQ seperti gambar di bawah ini.
Semua status node cluster aktif dan berjalan.
Sekarang klik menu tab 'Admin', dan klik menu 'Pengguna' di samping.
Dan Anda akan mendapatkan pengguna hakase dalam daftar.
Sekarang klik menu tab 'Admin', dan klik menu 'Kebijakan' di samping.
Dan Anda akan mendapatkan semua kebijakan RabbitMQ ha yang kami buat.
Instalasi dan konfigurasi RabbitMQ Cluster di server Ubuntu 18.04 telah berhasil diselesaikan.