Tổng quan#
RabbitMQ là một message broker (message-oriented middleware) sử dụng giao thức AMQP - Advanced Message Queue Protocol (Đây là giao thức phổ biến, thực tế rabbitmq hỗ trợ nhiều giao thức). RabbitMQ được lập trình bằng ngôn ngữ Erlang. RabbitMQ cung cấp cho lập trình viên một phương tiện trung gian để giao tiếp giữa nhiều thành phần trong một hệ thống lớn ( VD: Openstack RabbitMQ ). RabbitMQ sẽ nhận message đến từ các thành phần khác nhau trong hệ thống, lưu trữ chúng an toàn trước khi đẩy đến đích.
Trong bài này mình sẽ hướng dẫn các bạn triển khai hệ thống RabbitMQ theo mô hình Cluster
Mô hình#
Mô hình triển khai
Cấu hình
HOSTNAME rabbitmq94
CPU 2 core
RAM 2 GB
Disk vda: os
Network eth0: access network (10.10.10.94)
HOSTNAME rabbitmq95
CPU 2 core
RAM 2 GB
Disk vda: os
Network eth0: access network (10.10.10.95)
HOSTNAME rabbitmq96
CPU 2 core
RAM 2 GB
Disk vda: os
Network eth0: access network (10.10.10.96)
Cài đặt#
Chuẩn bị
Tại rabbitmq94
Cấu hình hostname
hostnamectl set-hostname rabbitmq94
echo "10.10.10.94 rabbitmq94" >> /etc/hosts
echo "10.10.10.95 rabbitmq95" >> /etc/hosts
echo "10.10.10.96 rabbitmq96" >> /etc/hosts
Cài đặt môi trường
yum -y install epel-release
yum update -y
yum -y install erlang socat wget
Cấu hình network
echo "Setup IP eth0"
nmcli c modify eth0 ipv4.addresses 10.10.10.94/24
nmcli c modify eth0 ipv4.gateway 10.10.10.1
nmcli c modify eth0 ipv4.dns 8.8.8.8
nmcli c modify eth0 ipv4.method manual
nmcli con mod eth0 connection.autoconnect yes
Tắt Firewall, SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
init 6
Tại rabbitmq95
Cấu hình hostname
hostnamectl set-hostname rabbitmq95
echo "10.10.10.94 rabbitmq94" >> /etc/hosts
echo "10.10.10.95 rabbitmq95" >> /etc/hosts
echo "10.10.10.96 rabbitmq96" >> /etc/hosts
Cài đặt môi trường
yum -y install epel-release
yum update -y
yum -y install erlang socat wget
Cấu hình network
echo "Setup IP eth0"
nmcli c modify eth0 ipv4.addresses 10.10.10.95/24
nmcli c modify eth0 ipv4.gateway 10.10.10.1
nmcli c modify eth0 ipv4.dns 8.8.8.8
nmcli c modify eth0 ipv4.method manual
nmcli con mod eth0 connection.autoconnect yes
Tắt Firewall, SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
init 6
Tại rabbitmq96
Cấu hình hostname
hostnamectl set-hostname rabbitmq96
echo "10.10.10.94 rabbitmq94" >> /etc/hosts
echo "10.10.10.95 rabbitmq95" >> /etc/hosts
echo "10.10.10.96 rabbitmq96" >> /etc/hosts
Cài đặt môi trường
yum -y install epel-release
yum update -y
yum -y install erlang socat wget
Cấu hình network
echo "Setup IP eth0"
nmcli c modify eth0 ipv4.addresses 10.10.10.96/24
nmcli c modify eth0 ipv4.gateway 10.10.10.1
nmcli c modify eth0 ipv4.dns 8.8.8.8
nmcli c modify eth0 ipv4.method manual
nmcli con mod eth0 connection.autoconnect yes
Tắt Firewall, SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
init 6
Cài đặt RabbitMQ
Lưu ý: Cài đặt trên tất cả các node
Cài đặt gói RabbitMQ
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
Khởi động RabbitMQ Server
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
systemctl status rabbitmq-server
Kích hoạt plugin rabbit management
rabbitmq-plugins enable rabbitmq_management
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Cấu hình Rabbit Cluster
Tại rabbitmq94
Kiểm tra trạng thái node
[root@rabbitmq94 ~]# sudo rabbitmqctl status|grep rabbit
Status of node rabbit@rabbitmq94
[{rabbit,"RabbitMQ","3.6.10"},
{rabbit_common,
"Modules shared by rabbitmq-server and rabbitmq-erlang-client",
Tạo User cho App (Portal), phân quyền
rabbitmqctl add_user admin Cloud365a@123
rabbitmqctl set_user_tags admin administrator
rabbitmqctl add_vhost admin_vhost
rabbitmqctl set_permissions -p admin_vhost admin ".*" ".*" ".*"
Copy file /var/lib/rabbitmq/.erlang.cookie từ rabbitmq94 sang các node còn lại. (Có nhập password)
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq95:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq96:/var/lib/rabbitmq/.erlang.cookie
Cấu hình policy HA Rabbit Cluster
rabbitmqctl -p admin_vhost set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'
Kiểm tra trạng thái cluster
rabbitmqctl cluster_status
Khởi chạy App
[root@rabbitmq94 ~]# rabbitmqctl start_app
Starting node rabbit@rabbitmq94
Kiểm tra trạng thái cluster
[root@rabbitmq94 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq94
[{nodes,[{disc,[rabbit@rabbitmq94]}]},
{running_nodes,[rabbit@rabbitmq94]},
{cluster_name,<<"rabbit@rabbitmq94">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq94,[]}]}]
Tại rabbitmq95
Phân quyền file /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
Khởi động lại dịch vụ
systemctl restart rabbitmq-server.service
Join cluster rabbitmq94
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq94
rabbitmqctl start_app
Tại rabbitmq96
Phân quyền file /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
Khởi động lại dịch vụ
systemctl restart rabbitmq-server.service
Join cluster rabbitmq94
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq94
rabbitmqctl start_app
Kiểm tra trên tất cả các node
Tại node rabbitmq94
[root@rabbitmq94 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq94
[{nodes,[{disc,[rabbit@rabbitmq94,rabbit@rabbitmq95,rabbit@rabbitmq96]}]},
{running_nodes,[rabbit@rabbitmq96,rabbit@rabbitmq95,rabbit@rabbitmq94]},
{cluster_name,<<"rabbit@rabbitmq94">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq96,[]},
{rabbit@rabbitmq95,[]},
{rabbit@rabbitmq94,[]}]}]
Tại node rabbitmq95
[root@rabbitmq95 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq95
[{nodes,[{disc,[rabbit@rabbitmq94,rabbit@rabbitmq95,rabbit@rabbitmq96]}]},
{running_nodes,[rabbit@rabbitmq96,rabbit@rabbitmq94,rabbit@rabbitmq95]},
{cluster_name,<<"rabbit@rabbitmq94">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq96,[]},
{rabbit@rabbitmq94,[]},
{rabbit@rabbitmq95,[]}]}]
Tại node rabbitmq96
[root@rabbitmq96 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq96
[{nodes,[{disc,[rabbit@rabbitmq94,rabbit@rabbitmq95,rabbit@rabbitmq96]}]},
{running_nodes,[rabbit@rabbitmq94,rabbit@rabbitmq95,rabbit@rabbitmq96]},
{cluster_name,<<"rabbit@rabbitmq94">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq94,[]},
{rabbit@rabbitmq95,[]},
{rabbit@rabbitmq96,[]}]}]
Kiểm tra RabbitMQ Management
Lưu ý: Các bạn đăng nhập với tài khoản admin/Cloud365a@123
Tổng kết#
Tới đây mình đã hướng dẫn các bạn cấu hình RabbitMQ Cluster. Để biết thêm chi tiết các bạn vui lòng tham khảo các link bên dưới. Chúc các bạn một ngày tốt lành.
Nguồn#
https://www.rabbitmq.com/ha.html
https://kipalog.com/posts/Tim-hieu-RabbitMQ—Phan-2
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty