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

rabbitmq-3.8.15集群、集群镜像模式安装部署

目录

一、环境

1、映射、域名、三墙

2、Erlang和socat安装(三台服务器都实行)

二、部署三台rabbitmq-3.8.15实例

1、rabbitmq官网下载地址 : 

2、解压rabbitmq

3、添加系统变量

4、启动web插件、启动rabbitmq

5、在rabbitmq1上添加用户

三、部署集群

1、向2和3分发.erlang.cookie

 2、rabbitmq2加入rabbitmq1节点

3、rabbitmq3同理,查看节点状态

三、设置为镜像模式


一、环境

1、映射、域名、三墙

[root@rabbitmq1 ~]# vim /etc/hosts
192.168.6.83 rabbitmq1
192.168.6.84 rabbitmq2
192.168.6.85 rabbitmq3
[root@rabbitmq1 ~]# hostnamectl set-hostname rabbitmq1
[root@rabbitmq1 ~]# bash
[root@rabbitmq2 ~]# hostnamectl set-hostname rabbitmq2
[root@rabbitmq2 ~]# bash
[root@rabbitmq3 ~]# hostnamectl set-hostname rabbitmq3
[root@rabbitmq3 ~]# bash 
[root@rabbitmq1 ~]# systemctl stop firewalld
[root@rabbitmq1 ~]# setenforce 0
[root@rabbitmq1 ~]# iptables -F 

2、Erlang和socat安装
(三台服务器都实行)

#Erlang安装
#Erlang环境
[root@rabbitmq1 ~]# yum -y install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel
[root@rabbitmq1 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
[root@rabbitmq1 ~]# sudo yum -y install erlang-22.3.4.19-1.el7.x86_64
[root@rabbitmq1 ~]# yum -y install socat

二、部署三台rabbitmq-3.8.15实例

1、rabbitmq官网下载地址 : 

Downloading and Installing RabbitMQ — RabbitMQicon-default.png?t=N7T8http://www.rabbitmq.com/download.html

获取 rabbitmq-server-generic-unix-3.8.15.tar并拉取到每台服务器

2、解压rabbitmq

[root@rabbitmq2 ~]#   xz -d rabbitmq-server-generic-unix-3.8.15.tar.xz 
[root@rabbitmq2 ~]#   tar xvf rabbitmq-server-generic-unix-3.8.15.tar 
[root@rabbitmq2 ~]#   mv rabbitmq_server-3.8.15/ /usr/local/rabbitmq

3、添加系统变量

    #打开环境变量文件[root@rabbitmq2 ~]#  vim /etc/profile#添加erlang rabbitmq 到环境变量export PATH=$PATH:/usr/local/erlang/binexport PATH=$PATH:/usr/local/rabbitmq/sbin#重新加载环境变量[root@rabbitmq2 ~]#  source /etc/profile

4、启动web插件、启动rabbitmq

    #启动web插件 便于访问[root@rabbitmq2 ~]#   rabbitmq-plugins enable rabbitmq_management#启动rabbitmq服务[root@rabbitmq2 ~]#  rabbitmq-server

5、在rabbitmq1上添加用户

    #添加用户 admin  密码为 123456rabbitmqctl add_user admin 123456#将admin 设置为管理员权限rabbitmqctl set_user_tags admin administrator#将admin 设置为远端登录rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

使用 admin 密码 123456 进行登录 

三、部署集群

1、向2和3分发.erlang.cookie

[root@rabbitmq1 ~]# scp .erlang.cookie 192.168.6.84:/root
[root@rabbitmq1 ~]# scp .erlang.cookie 192.168.6.85:/root

 2、rabbitmq2加入rabbitmq1节点

需要强调一下,集群中至少有一个节点是磁盘节点用于数据持久化,然后剩下的节点都设置为内存节点以提高性能。

这里将 rabbitmq2 添加到集群当中,并成为内存节点,不加–ram 默认是磁盘节点

rabbitmq1默认为磁盘节点

[root@rabbitmq2 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmqctl reset
Resetting node rabbit@rabbitmq2 ...
[root@rabbitmq2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1
Clustering node rabbit@rabbitmq2 with rabbit@rabbitmq1
[root@rabbitmq2 ~]# rabbitmqctl start_app
Starting node rabbit@rabbitmq2 ...

3、rabbitmq3同理,查看节点状态

[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
BasicsCluster name: rabbit@rabbitmq1Disk Nodesrabbit@rabbitmq1RAM Nodesrabbit@rabbitmq2
rabbit@rabbitmq3Running Nodesrabbit@rabbitmq1
rabbit@rabbitmq2
rabbit@rabbitmq3VersionsNode: rabbit@rabbitmq1, status: not under maintenance
Node: rabbit@rabbitmq2, status: not under maintenance
Node: rabbit@rabbitmq3, status: not under maintenanceMaintenance statusNode: rabbit@rabbitmq1, status: not under maintenance
Node: rabbit@rabbitmq2, status: not under maintenance
Node: rabbit@rabbitmq3, status: unknown

三、设置为镜像模式

[root@rabbitmq1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
Setting policy "ha-all" for pattern "^" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...

 验证

[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
BasicsCluster name: rabbit@rabbitmq1Disk Nodesrabbit@rabbitmq1RAM Nodesrabbit@rabbitmq2
rabbit@rabbitmq3Running Nodesrabbit@rabbitmq1
rabbit@rabbitmq2
rabbit@rabbitmq3Versionsrabbit@rabbitmq1: RabbitMQ 3.8.15 on Erlang 22.3.4.19
rabbit@rabbitmq2: RabbitMQ 3.8.15 on Erlang 22.3.4.19
rabbit@rabbitmq3: RabbitMQ 3.8.15 on Erlang 22.3.4.19Maintenance statusNode: rabbit@rabbitmq1, status: not under maintenance
Node: rabbit@rabbitmq2, status: not under maintenance
Node: rabbit@rabbitmq3, status: not under maintenanceAlarms(none)Network Partitions(none)ListenersNode: rabbit@rabbitmq1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@rabbitmq1, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@rabbitmq1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@rabbitmq2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@rabbitmq2, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@rabbitmq2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@rabbitmq3, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@rabbitmq3, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@rabbitmq3, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0(none)Network Partitions(none)ListenersNode: rabbit@rabbitmq1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@rabbitmq1, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@rabbitmq1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: rabbit@rabbitmq2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: rabbit@rabbitmq2, interface: [::], port: 15672, protocol: http, purpose: HTTP API
Node: rabbit@rabbitmq2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

相关文章:

  • 【Python3】【力扣题】202. 快乐数
  • 使用Golang与Web3.js进行区块链开发
  • 体育竞技分析
  • 前端Vue页面中如何展示本地图片
  • 4、QtCharts 做心电图
  • Java 入门指南:使用 Docker 创建容器化 Spring Boot 应用程序
  • css样式中 before、after 里面的 content 乱码
  • 修改svc的LoadBalancer的IP引发的惨案
  • C++11的lambda表达式
  • nlp之加载电商评论集
  • 真机环境配置教程
  • 项目进度延误,危机管理5大注意事项
  • 评论功能的选择难题:数据结构如何选定?
  • 什么是React中的有状态组件(stateful component)和无状态组件(stateless component)?
  • [每周一更]-(第69期):特殊及面试的GIT问题解析
  • 自己简单写的 事件订阅机制
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript设计模式与开发实践系列之策略模式
  • Java多线程(4):使用线程池执行定时任务
  • Koa2 之文件上传下载
  • node入门
  • PAT A1050
  • V4L2视频输入框架概述
  • Zsh 开发指南(第十四篇 文件读写)
  • 产品三维模型在线预览
  • 代理模式
  • 高度不固定时垂直居中
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 浅谈Golang中select的用法
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 实现简单的正则表达式引擎
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ​力扣解法汇总946-验证栈序列
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (1) caustics\
  • (Java数据结构)ArrayList
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (八十八)VFL语言初步 - 实现布局
  • (接口封装)
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • *p++,*(p++),*++p,(*p)++区别?
  • .gitignore文件_Git:.gitignore
  • .Mobi域名介绍
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .Net IE10 _doPostBack 未定义
  • .net MySql
  • .Net Redis的秒杀Dome和异步执行