RabbitMQ 3.8.3 notas concisas para construir un clúster espejo

Antecedentes

El proyecto debe ser utilizado RabbitMQy, al mismo tiempo, debe ser un clúster espejo.

Combate real

El siguiente experimento se basa en Centos6,RabbitMQ 3.8.3

Versión del sistema ip Nombre de host
Centos 6 192.168.201.170 mq1
Centos 6 192.168.201.171 MQ2
Centos 6 192.168.201.172 mq3

Tres servidores recuerdan configurar hosts

cat <<EOF>> /etc/hosts
192.168.201.170 mq1
192.168.201.171 mq2
192.168.201.172 mq3
EOF

Instalar

# 三台都要操作
wget https://mirrors.huaweicloud.com/rabbitmq-server/v3.8.3/rabbitmq-server-3.8.3-1.el6.noarch.rpm
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.3.2/erlang-22.3.2-1.el6.x86_64.rpm
yum localinstall erlang-22.3.2-1.el6.x86_64.rpm rabbitmq-server-3.8.3-1.el6.noarch.rpm -y

Configuracion

# 三台都要操作
# 安装简单,配置比较麻烦
# 我这里需要修改 RabbitMQ 的默认数据目录
mkdir -p /data/rabbitmq/{mnesia,log}
chown -R rabbitmq.rabbitmq /data/rabbitmq/
cat <<EOF> /etc/rabbitmq/rabbitmq-env.conf 
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/data/rabbitmq/log
EOF
#不知道为什么,只要修改过 /etc/rabbitmq 的文件,就要重新授权
chown -R rabbitmq.rabbitmq /etc/rabbitmq/
# 启动
/etc/init.d/rabbitmq-server start
# 启用 web 界面,此处必须,不然搭建集群会提示 “Node statistics not available”
rabbitmq-plugins enable rabbitmq_management
# 查看状态
/etc/init.d/rabbitmq-server status

Construye un clúster ordinario

En frente de la instalación RabbitMQtambién se instala el tiempo erlang, la oportunidad de aparecer en un archivo oculto llamado después de Bahrein .erlang.cookie, caminos $HOMEy /var/lib/rabbitmq/.erlang.cookie, pero los documentos oficiales decir sí o claro por qué tengo aquí hay tres caminos.

En los sistemas UNIX, la cookie generalmente se ubicará en /var/lib/rabbitmq/.erlang.cookie(utilizada por el servidor) y $HOME/.erlang.cookie (utilizada por las herramientas CLI). Tenga en cuenta que, dado que el valor de $HOMEvaría de un usuario a otro, es necesario colocar una copia del archivo de cookies para cada usuario que utilizará las herramientas de la CLI. Esto se aplica tanto a usuarios no privilegiados como a root.

¿Por qué se usa esta cosa? RabbitMQEl cluster depende de erlangun grupo, y erlangel grupo es a través de este cookieautenticación de la comunicación, por lo que asegúrese de que todas las máquinas de .erlang.cookieun mismo contenido, y los privilegios de sólo lectura.

Para que podamos poner mq1una .erlang.cookiecopia a mq2, mq3la máquina, y luego modificar los permisos

# mq1 操作
scp /var/lib/rabbitmq/.erlang.cookie 192.168.201.171:/var/lib/rabbitmq
# mq2 操作
chmod 400 /var/lib/rabbitmq/.erlang.cookie

mq2, mq3Únete al clúster

rabbitmqctl stop_app
# => Stopping node rabbit@mq2 ...done.

rabbitmqctl reset
# => Resetting node rabbit@mq2 ...

# 如果要设置为内存节点,则改为 rabbitmqctl join_cluster --ram rabbit@mq1
rabbitmqctl join_cluster rabbit@mq1
# => Clustering node rabbit@mq2 with [rabbit@mq1] ...done.

rabbitmqctl start_app
# => Starting node rabbit@mq2 ...done.

Ver el estado del clúster

rabbitmqctl cluster_status
...
Basics

Cluster name: rabbit@mq1

Disk Nodes

rabbit@mq1
rabbit@mq2
rabbit@mq3

Running Nodes

rabbit@mq1
rabbit@mq2
rabbit@mq3
...

Cluster espejo

J simplemente dijo que el mecanismo de la cola espejo es establecer la cola entre N nodos. El mensaje se sincronizará automáticamente entre N nodos, y si uno de los nodos no está disponible, no causará pérdida de mensajes o servicio. Cuando no está disponible, mejora la alta disponibilidad general del clúster MQ.

Configuracion

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

Supongo que te gusta

Origin www.cnblogs.com/fsckzy/p/12754893.html
Recomendado
Clasificación