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

相关推荐
heimeiyingwang16 分钟前
【架构实战】日志体系设计:从ELK到可观测性的演进
分布式·缓存·架构
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章17:Hadoop性能调优- 调度集群每一分性能
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
我是一颗柠檬1 小时前
【Java项目技术亮点】Kafka异步写+写聚合:吞吐量提升10倍的消息队列优化秘籍
java·分布式·kafka·linq
闪电悠米1 小时前
黑马点评-秒杀优化-03_blocking_queue_async_order
数据库·分布式·oracle·junit·wpf·lua
zzz_23681 小时前
【RabbitMQ】面试系列 · 第二期:高级特性与可靠性保障
面试·rabbitmq·java-rabbitmq
真实的菜1 小时前
Redis 从入门到精通(六):集群模式(Cluster)—— 分布式架构、哈希槽与 Gossip 协议全解
redis·分布式·架构
我是一颗柠檬2 小时前
【Redis】Redis分布式锁Day13(2026年)
java·redis·分布式·缓存
智慧物业老杨18 小时前
电动自行车安全管理数智化解决方案:从风险防控到证据闭环
安全·rabbitmq
闪电悠米19 小时前
黑马点评-秒杀优化-01_async_seckill_idea
java·数据库·ide·redis·分布式·缓存·intellij-idea
闪电悠米20 小时前
黑马点评-秒杀优化-02_lua_precheck
开发语言·redis·分布式·缓存·junit·wpf·lua