当前位置: 首页 > news >正文

rabbitmq集群

在这里插入图片描述
在这里插入图片描述

步骤 1:安装 Erlang 和 RabbitMQ(所有节点)

1.1 安装依赖

yum install -y socat logrotate

1.2 下载安装包(以最新稳定版为例)下载 Erlang (匹配 RabbitMQ 版本)

wget https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2/erlang-25.3.2-1.el7.x86_64.rpm

1.3 下载 RabbitMQ

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.12/rabbitmq-server-3.12.12-1.el8.noarch.rpm

1.4 安装步骤

yum install -y openssl-libs ncurses-compat-libs zlib libstdc++
rpm -ivh erlang-25.3.2-1.el7.x86_64.rpm --nodeps
rpm -ivh rabbitmq-server-3.12.12-1.el8.noarch.rpm --nodepsmkdir -p /mq/{data,log}
chown -R rabbitmq:rabbitmq /mqmkdir -p /mnt/{data,log}
chown -R rabbitmq:rabbitmq /mntcat <<EOF > /etc/rabbitmq/rabbitmq-env.conf
MNESIA_BASE=/mq/data
LOG_BASE=/mq/log
EOF

步骤 2:配置主机名解析(所有节点)

vi /etc/hosts
192.168.1.100 rmq1
192.168.1.110 rmq2
192.168.1.120 rmq3

步骤 3:同步 Erlang Cookie(所有节点)

从节点1复制 cookie 到其他节点
scp /var/lib/rabbitmq/.erlang.cookie root@rmq2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@rmq3:/var/lib/rabbitmq/

设置权限(所有节点)

chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie

步骤 4:启动服务并组建集群

4.1 启动所有节点

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

4.2 将节点加入集群
在节点2执行(加入节点1)

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rmq1
rabbitmqctl start_app

在节点3执行(以内存节点加入)

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rmq1
rabbitmqctl join_cluster --ram rabbit@rmq1
rabbitmqctl start_app

4.3 验证集群状态

rabbitmqctl cluster_status
输出应包含:plaintext
Disk Nodes: [rabbit@rmq1, rabbit@rmq2]
RAM Nodes: [rabbit@rmq3]启用管理插件
rabbitmq-plugins enable rabbitmq_management

创建管理员用户

rabbitmqctl add_user admin 123456
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

重启RabbitMQ服务(所有节点)

systemctl restart rabbitmq-server
增加文件句柄限制
echo "fs.file-max = 500000" >> /etc/sysctl.conf
sysctl -p
more rabbitmq.conf 
#网络优化
tcp_listen_options.backlog = 4096
tcp_listen_options.nodelay = true
tcp_listen_options.linger.on = true
tcp_listen_options.linger.timeout = 0内存管理
vm_memory_high_watermark.relative = 0.75
vm_memory_calculation_strategy = rss
文件IO优化
channel_max = 5000
disk_free_limit.absolute = 10GB
queue_index_embed_msgs_below = 4096  # 4KB以下消息嵌入索引

配置镜像集群策略

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

步骤四 监控配置

启用插件
#获取集群名称
rabbitmq-diagnostics -q cluster_status
#设置集群名称
rabbitmqctl -q set_cluster_name myrabbitmq
#启用插件
rabbitmq-plugins enable rabbitmq_prometheus

RabbitMQ 在专用 TCP 端口(默认为15692)上公开指标,因此rabbitmq集群需要开放15692端口才行。
在这里插入图片描述
配置prometheus

- job_name: 'rabbitMq-prod'metrics_path: /metricsstatic_configs:- targets: ['192.168.1.100:15692']labels:cluster: smat-rabbitmq- targets: ['192.168.1.110:15692']labels:cluster: smat-rabbitmq- targets: ['192.168.1.120:15692']labels:cluster: smat-rabbitmqrelabel_configs:- source_labels: [__address__]target_label: instance- source_labels: [__address__]regex: '192.168.1.100:15692'target_label: rabbitmq_nodereplacement: 'rabbit@rmq11'- source_labels: [__address__]regex: '192.168.1.110:15692'target_label: rabbitmq_nodereplacement: 'rabbit@rmq2'- source_labels: [__address__]regex: '192.168.1.120:15692'target_label: rabbitmq_nodereplacement: 'rabbit@rmq3'- source_labels: [__address__]regex: '([^:]+):(\d+)'target_label: ip_addressreplacement: '${1}'- source_labels: [__address__]regex: '([^:]+):(\d+)'target_label: portreplacement: '${2}'

Granfana模板 (grafana 版本 v12.1.1)

面板ID:10991 => RabbitMQ-Overview

在这里插入图片描述

http://www.dtcms.com/a/349562.html

相关文章:

  • 基于RFM模型的客户群体大数据分析及用户聚类系统的设计与实现
  • AI+数据库:国内DBA职业发展与国产化转型实践
  • Torch入门小知识点--总结性语言
  • CSS基础学习第一天
  • The Google File System 详解
  • 【Docker基础】Docker-compose进阶配置:健康检查与服务就绪
  • 一、添加Viewport3DX,并设置相机、灯光
  • Java-包装类
  • 深度学习-----《PyTorch神经网络高效训练与测试:优化器对比、激活函数优化及实战技巧》
  • 【数据结构】栈和队列——队列
  • 向量库Qdrant vs Milvus 系统详细对比
  • 线性回归入门:从原理到实战的完整指南
  • 数据结构——线性表(链表,力扣中等篇,技巧型)
  • Postman 模拟mcp tool调用过程
  • 【数据结构】顺序表详解
  • Flink hop window(滑动窗口)详解
  • leetcode 498. 对角线遍历 中等
  • Linux下的软件编程——网络编程(http)
  • C++14 到 C++20 全面解析:语言新特性、标准库演进与实战案例
  • 【二叉树 - LeetCode】617. 合并二叉树
  • [QMT量化交易小白入门]-八十三、8月因为通信行业,QMT平台ETF轮动策略年化达到了168.56%
  • 降本增效:基于 JavaScript 的 AI 编程 IDE 上下文压缩优化方案
  • CloudBase云开发MCP + CodeBuddy IDE:打造智能化全栈理财助手的完整实践
  • 本地生活新风口:“我店模式”入局正当时??
  • Web程序设计
  • 【前端安全】前端安全第一课:防止 XSS 和 CSRF 攻击的常见手法
  • 新型HTTP走私攻击技术使攻击者可注入恶意请求
  • 从0死磕全栈第1天:从写一个React的hello world开始
  • k8s笔记04-常用部署命令
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Quickstart with Jupyter