代码编织梦想

1.1 添加其他用户 133、134、135

因为 guest 用户只能在本机访问,添加一个 admin 用户,密码也是 admin
./rabbitmqctl add_user admin admin
./rabbitmqctl set_user_tags admin administrator
./rabbitmqctl set_permissions -p / admin “." ".” “.*”

1.2 启用管理插件

./rabbitmq-plugins enable rabbitmq_management
访问:
http://虚拟机 IP:15672

1.3 软件版本

Erlang 是当前最新版本 23.1
RabbitMQ 是当前最新版本 3.8.4

1.4 机器规划

准备三台虚拟机,可以用克隆功能。
192.168.111.133 RabbitMQ 内存节点 HAPRoxy Keepalived(master)
192.168.111.134 RabbitMQ 内存节点 HAPRoxy Keepalived(backup)
192.168.111.135 RabbitMQ 磁盘节点
VIP 192.168.111.159

1.5 网络结构图

在这里插入图片描述

1.6 安装 Erlang 和 RabbitMQ

先按这个步骤在三台机器上分别安装好 Erlang 和 RabbitMQ。

1.7 配置.erlang.cookie

.erlang.cookie 默认在当前用户根目录下,是隐藏文件,只读文件。
权限要先改成 777,改完以后还原成 400
将三台机器内容改为一致,或者把第一台机器.erlang.cookie 上传到其他两台机器。
cd ~
chmod 777 .erlang.cookie
vim .erlang.cookie
XTNENHLEVWHMRLMIYAUD

chmod 400 .erlang.cookie

1.8 配置三台机器 host

vim /etc/hosts
添加内容:
192.168.111.133 rmq156
192.168.111.134 rmq157
192.168.111.135 rmq158
重启网络
service network restart
相互验证一下,看看能不能 ping 通:
ping rmq157

1.9 加入集群

在 158(磁盘节点)上执行:
cd /usr/local/soft/rabbitmq_server-3.8.9/sbin
./rabbitmq-server -detached >nohup.out&
./rabbitmqctl start_app
在 156、157(内存节点)上执行:
cd /usr/local/soft/rabbitmq_server-3.8.9/sbin
./rabbitmq-server -detached >nohup.out&
./rabbitmqctl start_app
./rabbitmqctl stop_app
./rabbitmqctl join_cluster --ram rabbit@rmq158
./rabbitmqctl start_app
查看集群状态
./rabbitmqctl cluster_status
也可以在任何一台机器的管理界面查看:
在这里插入图片描述
设置镜像队列,在三台机器上执行:
./rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:“all”}’

1.10 安装 HAPRoxy

yum install -y haproxy

1.10.1 配置 HAPRoxy

cd /etc/haproxy/
cp haproxy.cfg haproxy.cfg.bak
配置文件内容全部覆盖

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
log 127.0.0.1 local2
chroot /var/lib/haproxy # 改变当前工作目录
pidfile /var/run/haproxy.pid # haproxy 的 pid 存放路径,启动进程的用户必须有权限访问此文件
maxconn 4000 # 最大连接数,默认 4000
user root # 默认用户
group root # 默认组
daemon # 创建 1 个进程进入 deamon 模式运行。此参数要求将运行模式设置为 daemon
stats socket /var/lib/haproxy/stats # 创建监控所用的套接字目录
#---------------------------------------------------------------------
# defaults settings
#---------------------------------------------------------------------
# 注意:因为要使用 tcp 的负载,屏蔽掉与 http 相关的默认配置
defaults
mode http # 默认的模式 mode { tcp|http|health },tcp 是 4 层,http 是 7 层,health 只会返回 OK
log global
# option httplog # 采用 http 日志格式
option dontlognull # 启用该项,日志中将不会记录空连接。所谓空连接就是在上游的负载均衡器
# option http-server-close # 每次请求完毕后主动关闭 http 通道
# option forwardfor except 127.0.0.0/8 # 如果后端服务器需要获得客户端真实 ip 需要配置的参数,可以从 Http Header 中获得客户端 ip
option redispatch # serverId 对应的服务器挂掉后,强制定向到其他健康的服务器
retries 3 # 3 次连接失败就认为服务不可用,也可以通过后面设置
# timeout http-request 10s
timeout queue 1m
timeout connect 10s # 连接超时时间
timeout client 1m # 客户端连接超时时间
timeout server 1m # 服务器端连接超时时间
# timeout http-keep-alive 10s
timeout check 10s
maxconn 3000 # 最大连接数
###################### 打开 haproxy 的监测界面###############################
listen status
bind 0.0.0.0:9188
mode http
stats enable
stats refresh 30s
stats uri /stats #设置 haproxy 监控地址为 http://localhost:9188/stats
stats auth admin:123456 #添加用户名密码认证
stats realm (Haproxy\ statistic)
stats admin if TRUE
######################监听 rabbitmq 的 web 操作页面############################
listen rabbitmq_admin
bind 0.0.0.0:15670
server rmq156 192.168.111.133:15672
server rmq157 192.168.111.134:15672
#######################监听 rabbimq_cluster #################################
listen rabbitmq_cluster
bind 0.0.0.0:5670
mode tcp
#负载均衡算法(#banlance roundrobin 轮询,balance source 保存 session 值,支持 static-rr,leastconn,first,uri 等参数)
balance roundrobin
#check inter 2000 是检测心跳频率
#rise 2 是 2 次正确认为服务器可用
#fall 2 是 2 次失败认为服务器不可用
server rabbit1 192.168.111.133:5672 check inter 5000 rise 2 fall 2
server rabbit2 192.168.111.134:5672 check inter 5000 rise 2 fall 2

1.10.2 启动 156 和 157 的 haproxy

haproxy -f /etc/haproxy/haproxy.cfg
其他命令:
service haproxy restart
service haproxy stop

1.10.3 浏览器访问:

192.168.44.156:15670
192.168.44.157:15670
这两个都能正常访问 RabbitMQ 管理界面,用 admin/admin 登录
192.168.44.156:9188/stats
192.168.44.157:9188/stats
这两个能正常访问 HaProxy 监控界面,用 amdin/123456 登录
在这里插入图片描述

1.11 安装 Keepalived

yum install -y keepalived

1.11.1 配置 Keepalived

cd /etc/keepalived
cp keepalived.conf keepalived.conf.bak
156 为 master,配置内容

global_defs {
router_id NodeA # 起一个唯一的名字,不能与备机相同
}
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state MASTER # 这里标记为主
interface eno16777736 # 这里的必须和你的网卡一致,ipconfig 获得
virtual_router_id 1 # 这里表示路由的唯一标识与备机一致
priority 100 # 配置优先级
advert_int 1
authentication {
auth_type PASS
auth_pass root # 配置认证密码
}
virtual_ipaddress { # 配置虚拟 ip 地址,就是开放的地址,与本机 ip 不同
192.168.111.159
}
track_script {
chk_haproxy
}
}

157 为 backup,配置内容
router_id、vrrp_instance state、priority 要修改

global_defs {
router_id NodeB
}
vrrp_script chk_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 通过 BACKUP 表示该机器为备机
interface eno16777736 # 与网卡一致,ipconfig 获得
virtual_router_id 1 # 与主机一致
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass root
}
virtual_ipaddress { # 开放的虚拟地址
192.168.111.159
}
track_script {
chk_haproxy
}
}

1.11.2 编写脚本内容,自动重启 HAProxy 的服务,如果不成功则关闭Keepalived 服务

#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
haproxy -f /etc/haproxy/haproxy.cfg
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
service keepalived stop
fi

作用:
如果 HAProxy 服务挂了,先重启。
如果重启不成功,关闭 Keepalived 服务,切换倒 backup

1.11.3 启动 keepalived

先启动 156 master,再启动 157 slave
service keepalived start
查看状态
service keepalived status
查看启动日志:
journalctl -xe
查看 keepalived 日志
tail -f /var/log/messages
访问:
192.168.111.159:15670
admin/admin 登录
在这里插入图片描述
应用连接到
192.168.111.159:5670 收发消息

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010574271/article/details/127971958

Linux环境搭建Rabbitmq集群-爱代码爱编程

前言 资料准备: 1、erlong安装包 2、rabbitmq安装包 3、两台Linux服务器(本篇文章用的CentOS7) 可以按照下面博客中步骤安装:Linux下安装Rabbitmq 环境准备 保证两台服务器安装rabbitmq成功,并且能够成功访问到管理台界面。 在两台Linux系统中修改hostname,分别为A和B,作为集群注册的主机名。

linux环境rabbitMQ集群搭建-爱代码爱编程

  一、资料准备: 1、erlang安装包 erlang-18.1-1.el7.centos.x86_64.rpm 2、rabbitmq安装包 rabbitmq-server-3.5.6-1.noarch.rpm 3、两台Linux服务器(本篇文章用的CentOS7) 二、安装erlang和rabbitmq 先在其中一台上面按照如下步骤操作:

Linux下RabbitMQ集群的搭建-爱代码爱编程

RabbitMQ集群搭建包括以下七部分内容: 系统环境 安装Erlang 安装RabbitMQ 运行RabbitMQ RabbitMQ集群配置 RabbitMQ配置MQTT协议 RabbitMQ相关的命令 在搭建RabbitMQ集群之前有必要在每台虚拟机上安装如下的组件包,分别如下: a.JDK; b.Erlang运行时环境; c.Rabbi

Linux环境下搭建RabbitMQ集群-爱代码爱编程

前期准备 1、在VMware上创建两个CentOS7虚拟机 2、在CentOS中分别安装好RabbitMQ,并能成功运行,访问到管理界面 3、在CentOS7中安装RabbitMQ步骤参考:https://blog.csdn.net/weixin_47026543/article/details/113349896 搭建集群 1、修改两台虚拟机的机器

Linux下Rabbitmq集群的搭建-爱代码爱编程

rabbitMQ集群 1.一台主机启动多个rabbitMQ 伪集群 停止rabbitMQ服务[root@MiWiFi-RA72-srv ~]# service rabbitmq-server stop (1)开启第一个节点[root@MiWiFi-RA72-srv ~]# RABBITMQ_NODE_PORT=5673 RABBITMQ_NODEN

Linux下的Rabbitmq镜像集群模式搭建-爱代码爱编程

Rabbitmq镜像集群模式搭建 一. 搭建第一台rabbitmq服务 1. 在服务器上新建文件夹,拷入安装包(见附件) 自行下载rabbitmq,erlang,socat 地址: http://www.dest-unreach.org/socat/ https://www.erlang.org/downloads https://www.rabbi

rabbitmq集群搭建-爱代码爱编程

一、基础安装 前提:三个节点都主机映射,关防火墙网络,配好yum(后边出错,主机名和映射要对应) 1.安装(三个节点) 2.mq1启动rabbitmq服务查看状态 3.配置界面访问 4. 使用界面查看(端口15672,默认帐户和密码guest) 二、配置rabbitmq集群服务 1.先构建erlang集群

基于Docker搭建RabbitMQ集群(多台服务器)-爱代码爱编程

前言:本文章这次主要是基于docker在多台服务器下搭建的普通集群环境,镜像集群以及集群搭建后通过nginx负载和keepalived实现HA会另出一篇文章进行详细介绍。 一:准备工作 集群所需要的虚拟机环境(根据自身的集群需要来准备),我这边测试的话用的是2台;机器准备好后,安装好docke环境等集群所需要的依赖 二:拉取RabbitMQ所需的镜像

rabbitmq集群搭建_小新爱编程的博客-爱代码爱编程

RabbitMQ集群搭建 摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理。一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用R

linux安装rabbitmq教程linux搭建集群教程_过的很好谢谢的博客-爱代码爱编程

01、安装前准备 1:下载地址:https://www.rabbitmq.com/download.html 2:环境准备:CentOS7.x+ / Erlang RabbitMQ是采用Erlang语言开发的,所以系统环境必

rabbitmq初步到精通-第八章-java-amqp-client源码分析_mr-昊哥的博客-爱代码爱编程

目录 第八章-Java-AMQP-Client源码分析 1、背景         1.1 客户端介绍         1.2 看源码好处         1.3 如何看源码 2、生产者 3、消费者监听 4、创建连接 5、消费者消费 6. 总结: 第八章-Java-AMQP-Client源码分析 1、背景 1.1

linux搭建rabbitmq单机/集群步骤_liunx rabbitmq集群搭建-爱代码爱编程

文章目录 1. 搭建RabbitMQ单机环境1.1. 版本1.2. 资源下载1.3. 搭建步骤1.3.1. 安装Erlang1.3.2. 安装socat1.3.3. 安装RabbitMQ1.3.4. 关闭防火墙