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实例

相关推荐
worilb1 天前
Spring Cloud 学习与实践(13):使用 Seata 解决分布式事务问题
分布式·学习·spring cloud
风若飞1 天前
Tomcat 9.0.118 分布式 Redis Session 配置指南
redis·分布式·tomcat
六bring个六1 天前
文件互传在传输层的操作分析
分布式·p2p·c/c++·open harmony
吴声子夜歌1 天前
Redis 5.x——分布式锁
redis·分布式
我登哥MVP2 天前
Hadoop成长史-从Nutch子项目到大数据生态王者
java·大数据·hadoop·分布式·云原生·云计算
Rain的Java大神实战圈2 天前
订单超时如何自动取消
消息队列·rabbitmq·高并发·架构设计
凯云-金山HIL2 天前
打破仿真孤岛:基于凯云SimuRTS的分布式联合仿真系统架构深度解析
自动化测试·分布式·系统架构·etest·半实物仿真
Database_Cool_3 天前
HTAP数据库详解_阿里云PolarDB-X一体化行列存实现实时分析
分布式·阿里云·云计算
泰克教育官方账号3 天前
泰涨知识 | Shell脚本之一键启动和关闭Zookeeper脚本
分布式·zookeeper·云原生
添砖java_8573 天前
基于RabbitMQ实现的轻量队列测试报告
分布式·rabbitmq