RabbitMQ adalah perangkat lunak perantara pesan open source yang awalnya mengimplementasikan 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 (Message Antrian Transportasi Telemetri).
RabbitMQ adalah perangkat lunak antrian pesan yang menawarkan dukungan untuk mengirim dan menerima pesan antara sistem terdistribusi, aplikasi, dan layanan. Itu ditulis dengan bahasa pemrograman Erlang dan mendukung antarmuka klien dan perpustakaan untuk semua bahasa pemrograman utama termasuk Python, NodeJS, Java, PHP dll.
Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara mengatur Cluster RabbitMQ di Server CentOS 7. Kami akan menyiapkan RabbitMQ Cluster menggunakan server Three CentOS, mengaktifkan RabbitMQ Management, dan Menyiapkan kebijakan HA untuk semua node.
Prasyarat
- 3 Server CentOS 7 atau lebih
- 10.0.15.21 simpul01
- 10.0.15.22 simpul02
- 10.0.15.23 simpul03
- Hak istimewa root
Apa yang akan kita lakukan?
- Siapkan File Host
- Instal Server RabbitMQ
- Aktifkan Plugin Manajemen RabbitMQ
- Konfigurasi Firewalld
- Siapkan Cluster RabbitMQ
- Konfigurasikan Pengguna Admin Baru
- Menyiapkan Pencerminan Antrian 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 node01 10.0.15.22 node02 10.0.15.23 node03
Simpan dan keluar.
Langkah 2 - Instal Server RabbitMQ
Pada langkah ini, kita akan menginstal paket RabbitMQ Server dari repositori EPEL (Extra Packages for Enterprise Linux).
Tambahkan repositori EPEL ke sistem CentOS 7.
sudo yum -y install epel-release
Sekarang instal RabbitMQ Server ke semua node 'node01', 'node02', dan 'node03' menggunakan perintah yum di bawah ini.
sudo yum -y install rabbitmq-server
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 semua node cluster CentOS 7.
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
Dan Manajemen RabbitMQ telah diaktifkan.
Langkah 4 - Konfigurasi CentOS Firewalld
Dalam tutorial ini, kita akan mengaktifkan layanan CentOS firewalld, jadi kita perlu membuka port yang digunakan oleh server RabbitMQ.
Kami akan membuka port yang menggunakan server RabbitMQ '5672', port untuk manajemen RabbitMQ '15672', dan port untuk cluster RabbitMQ '4369, 25672'.
Jalankan perintah firewalld berikut.
sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent
Sekarang muat ulang firewalld dan periksa semua port yang terbuka pada daftar.
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Konfigurasi CentOS firewalld telah selesai, dan kami 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' di direktori '/var/lib/rabbitmq' dari 'node01' ke node lain 'node02' dan 'node03'.
Salin file '.erlang.cookie' menggunakan perintah scp dari 'node01'.
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 menyiapkan 'node02' dan 'node03' untuk bergabung dengan cluster 'node01'.
Jalankan semua perintah di bawah ini pada server 'node02' dan 'node03'.
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 'node01', lalu jalankan aplikasinya.
sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app
Setelah selesai, cek status cluster RabbitMQ.
sudo rabbitmqctl cluster_status
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Di 'node02'.
Di 'node03'.
Cluster RabbitMQ telah dibuat, dengan node01, node02, dan node03 sebagai anggota.
Langkah 6 - Buat 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 'node01', dan secara otomatis akan 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 gambar di bawah ini.
Pengguna RabbitMQ baru telah dibuat, dan pengguna 'tamu' default dihapus.
Langkah 7 - Pencerminan Antrian Pengaturan RabbitMQ
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'.
Berikut adalah 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"}'
Setup kebijakan ha bernama 'ha-nodes' yang semua nama antrian dimulai dengan 'node.' akan mencerminkan dua node tertentu 'node02' dan 'node03' di cluster.
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
'{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'
Sekarang periksa semua kebijakan yang tersedia menggunakan perintah di bawah ini.
sudo rabbitmqctl list_policies;
Dan jika Anda ingin menghapus kebijakan tersebut, gunakan perintah berikut.
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 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 CentOS 7 telah berhasil diselesaikan.