entorno de construcción
el anfitrión | IP | nombre de la CPU |
---|---|---|
MQ01 | 192.168.0.107 | conejomq01 |
MQ02 | 192.168.0.86 | conejomq02 |
Instalar MQ
Descargar MQ
wget wget https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.16-1.el7.noarch.rpm
wget https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.2.7-1.el7.x86_64.rpm
Instalar MQ
yum localinstall -y erlang-23.2.7-1.el7.x86_64.rpm
yum localinstall -y rabbitmq-server-3.8.16-1.el7.noarch.rpm
Escribir archivo maestro
touch /etc/rabbitmq/rabbitmq.conf
chow .rabbitmq /etc/rabbitmq/ -R
Vim /etc/rabbitmq/rabbitmq.conf
#禁止来宾访问
loopback_users.guest = false
#监听端口
listeners.tcp.default = 5672
#默认用户名和密码
default_pass = admin
default_user = admin
#WEB管理端端口
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
#WEB默认访问路径(建议不配置)
management.path_prefix=mq
Modificar datos, ubicación de almacenamiento de registro
mkdir /data/rabbitmq/{
logs/data}
chown rabitmq:rabbitmq /data/rabbitmq -R
vim /etc/rabbitmq/rabbitmq-env.conf
#添加如下两行内容
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
Iniciar MQ
systemctl stop firewalld
systemctl start rabbitmq-server
Establecer conexión de nombre de host
MQ01:
hostnamectl set-hostname rabbitmq01
bash
echo "192.168.0.86 rabbitmq02" >>/etc/hosts
echo "192.168.0.107 rabbitmq01" >>/etc/hosts
ping rabbitmq02
MQ02:
hostnamectl set-hostname rabbitmq02
bash
echo "192.168.0.86 rabbitmq02" >>/etc/hosts
echo "192.168.0.107 rabbitmq01" >>/etc/hosts
ping rabbitmq01
set.erlang.cookie
MQ01:
echo "Weihu2023@" >/var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server
MQ02:
echo "Weihu2023@" >/var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server
Construir un clúster
El nodo se une al clúster
MQ02:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app
De forma predeterminada, RabbitMQ comienza como un nodo de disco. Si desea unirse como un nodo de memoria, puede agregar el parámetro --ram.
Si desea modificar el tipo de nodo, puede utilizar el comando:
rabbitmqctl change_cluster_node_type disc(ram)
Tenga en cuenta que dado que los nodos de RAM solo almacenan tablas de bases de datos internas en la memoria, estos datos deben sincronizarse desde otros nodos cuando se inicia el nodo de RAM, por lo que un clúster debe contener al menos un nodo de disco.
establecer el nombre del clúster
rabbitmqctl set_cluster_name rabbitmq_test_cluster
En este punto, se ha creado el clúster ordinario. Si necesita configurar un clúster reflejado, debe continuar realizando las siguientes operaciones
Configurar un clúster reflejado
- configuración de la línea de comandos
rabbitmqctl set_policy "queue_policy_test" "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
ver reglas
rabbitmqctl list_policies
- Configuración de la interfaz de administración
1. Crear reglas
各参数含义如下:
Name: policy 的名称。
Pattern: queue 的匹配模式(正则表达式)。
Definition: 镜像定义,主要有三个参数:ha-mode, ha-params, ha-sync-mode。
ha-mode: 指明镜像队列的模式,有效值为 all、exactly、nodes。其中 all 表示在集群中所有的节点上进行镜像(默认即此);exactly 表示在指定个数的节点上进行镜像,节点的个数由 ha-params 指定;nodes 表示在指定的节点上进行镜像,节点名称通过 ha-params 指定。
ha-params: exactly 模式需要用到的参数,
ha-sync-mode: 进行队列中消息的同步方式,有效值为 automatic 和 manual。
priority 为可选参数,表示 policy 的优先级。
2. Verifique las reglas
3. Verifique las reglas (cree una cola en un nodo aleatorio y verifique si está sincronizado con dos nodos)
-
Antes de crear una política espejo
-
Después de crear la política espejo
Comandos comunes de clúster
Ver el estado del clúster
rabbitmqctl cluster_status