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

相关推荐
学习中的阿陈19 分钟前
Hadoop伪分布式环境配置
大数据·hadoop·分布式
葵野寺34 分钟前
【RelayMQ】基于 Java 实现轻量级消息队列(九)
java·开发语言·rabbitmq·java-rabbitmq
CesareCheung37 分钟前
JMeter分布式压力测试
分布式·jmeter·压力测试
失散132 小时前
分布式专题——10.5 ShardingSphere的CosID主键生成框架
java·分布式·架构·分库分表·shadingsphere
Cxzzzzzzzzzz6 小时前
RabbitMQ 在实际开发中的应用场景与实现方案
分布式·rabbitmq
在未来等你6 小时前
Kafka面试精讲 Day 16:生产者性能优化策略
大数据·分布式·面试·kafka·消息队列
王大帅の王同学6 小时前
Thinkphp6接入讯飞星火大模型Spark Lite完全免费的API
大数据·分布式·spark
一氧化二氢.h8 小时前
通俗解释redis高级:redis持久化(RDB持久化、AOF持久化)、redis主从、redis哨兵、redis分片集群
redis·分布式·缓存
爱睡觉的圈圈12 小时前
分布式IP代理集群架构与智能调度系统
分布式·tcp/ip·架构
APItesterCris15 小时前
构建分布式京东商品数据采集系统:基于 API 的微服务实现方案
分布式·微服务·架构