rabbitmq集群配置

1,配置环境变量

MY_POD_NAME:当前Pod的名称

RABBITMQ_ERLANG_COOKIE:设置Erlang Cookie用于节点间通信安全验证,值来自/nfs/rabbitmq/lib/.erlang.cookie文件内容

RABBITMQ_NODENAME:根据Pod名称动态生成了RabbitMQ节点的名称

2,配置postStart函数,在Pod容器启动后执行的命令:脚本主要用于在RabbitMQ容器启动后,配置DNS,然后等待RabbitMQ服务启动并健康检查,最后判断并处理节点是否已加入集群的情况

lifecycle:
``postStart:
``exec``:
``command``:
``- ``/bin/sh
``- -c
``- >
``if [ -z ``"$(grep rabbitmq /etc/resolv.conf)" ]; ``then
``sed "s/^search \([^ ]\+\)/search rabbitmq.\1 \1/" /etc/resolv``.conf > ``/etc/resolv``.conf.new;
``cat /etc/resolv``.conf.new > ``/etc/resolv``.conf;
``rm /etc/resolv``.conf.new;
``fi``;
``until rabbitmqctl node_health_check; ``do sleep 1; ``done``;
``if [ -z ``"$(rabbitmqctl cluster_status | grep rabbitmq-0)" ]; ``then
``touch /gotit
``rabbitmqctl stop_app;
``rabbitmqctl reset;
``rabbitmqctl join_cluster rabbit@rabbitmq-0;
``rabbitmqctl start_app;
``else
``touch /notget
``fi``;
特别注意:``rabbitmq是服务名称,这个服务包含4369和25672端口号

3,配置service

端口号4369:Erlang Port Mapping Daemon (epmd)端口,用于Erlang节点之间的发现。

端口号25672:Erlang分布服务间通信端口,在RabbitMQ集群配置中用于节点间的通信。

以上配置完成后,可启用多个pods实例

相关推荐
麟听科技21 小时前
HarmonyOS 6.0+ 智能家电控制APP开发实战:分布式设备联动与场景化控制落地
分布式·华为·harmonyos
weixin_456723161 天前
Java项目的rabbitmq配置vhost
java·rabbitmq·java-rabbitmq
星梦清河1 天前
微服务-MQ高级
微服务·架构·ruby
czlczl200209251 天前
分布式数据库分片自动扩展
数据库·分布式
天微微蓝sunny1 天前
存储系统知识全景:从一块磁盘到分布式块存储
分布式
铁皮哥1 天前
【后端开发】RabbitMQ、RocketMQ、Kafka 怎么选?我从业务场景重新梳理了一遍
java·linux·数据库·分布式·kafka·rabbitmq·rocketmq
phltxy1 天前
分布式链路追踪实战:Apache SkyWalking 从入门到精通
分布式·apache·skywalking
宇之广曜1 天前
从 MQ 到 Celery:把异步任务、状态表、重试补偿和 Outbox 一次讲清楚
kafka·rabbitmq
苍煜1 天前
Kafka消息零丢失核心全解:生产者acks机制+消费者offset机制
分布式·kafka
何中应2 天前
RabbitMQ集群搭建
分布式·rabbitmq