一.环境准备

1选择RabbitMQ的版本

http://www.rabbitmq.com/changelog.html

: 不同版本的Linux选择的RabbitMQ版本也不同,参照

http://www.rabbitmq.com/install-rpm.html

查看CentOS版本:more /etc/redhat-release

2、RabbitMQ依赖于Erlang,两者版本需匹配,版本对照表如下:

http://www.rabbitmq.com/which-erlang.html

2.1选择Erlang的版本

http://www.erlang.org/downloads

.安装单机RabbtiMQ

2.1 安装Erlang

2.1.1 安装Erlang依赖

yum install gcc glibc-devel make ncurses-devel openssl-devel autoconf

2.1.2 下载解压缩

wget 复制的下载链接地址

wget http://erlang.org/download/otp_src_20.3.tar.gz

tar -xvf otp_src_20.3.tar.gz

2.1.3 安装Erlang

转到解压目录下 cd otp_src_20.3 挨个运行一下命令

./configure

make install

2.2 安装RabbitMQ

2.2.1 下载RabbitMQ

wget 复制的下载链接地址

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el6.noarch.rpm

2.2.2 安装RabbitMQ

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

rpm  -i --nodeps rabbitmq-server-3.7.4-1.el6.noarch.rpm

在/opt/rabbitmq文件夹下

查看安装包:rpm -qa | grep -i rabbitmq-server-3.7.4-1.el6.noarch

删除安装包:rpm -e rabbitmq-server-3.7.4-1.el6.noarch

2.2.3 新建文件,指定节点名

文件路径: /etc/rabbitmq/rabbitmq-env.conf

文件内容: NODENAME=rabbit@节点名

节点名设为机器名称即可

2.2.4 启动RabbitMQ

进入  /usr/lib/rabbitmq/bin/

运行   rabbitmq-server

按Ctrl+C,等一下就退出了

2.2.5 Web管理后台

加载插件:rabbitmq-plugins enable rabbitmq_management

再次运行   rabbitmq-server

页面访问:http://IP:15672/

.RabbtiMQ用户管理

3.1 参考链接

https://www.cnblogs.com/java-zhao/p/5670476.html

3.2 添加一个用户

rabbitmqctl add_user 用户名 用户密码

3.3 给用户赋角色

rabbitmqctl set_user_tags 用户名 角色名

3.4 给用户赋权限

rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"

3.5 删除用户

rabbitmqctl  delete_user  用户名

3.6查看用户

rabbitmqctl  list_users

注: 默认用户为guest guest,可新建用户

给文件赋权限:

chmod 777 /文件夹名字/文件名字或者*

.RabbitMQ集群搭建

4.1 环境准备

多台(3台)安装RabbitMQ Server的服务器,服务器IP分别为 ip1,ip2,ip3,以选择ip1服务器为主节点为例

4.2 保持.erlang.cookie一致

1)复制ip1服务器中的.erlang.cookie

(.erlang.cookie 存在于/var/lib/rabbitmq/.erlang.cookie 和~/.erlang.cookie中)

2)保持ip1,ip2,ip3服务器中的/var/lib/rabbitmq/.erlang.cookie和~/.erlang.cookie一致

4.3 后台启动各个节点

rabbitmq-server -detached

这样就成功了,网页访问一下能成功就行

切记:启动后不要关闭,否则会出现错误

4.4 查看各节点状态

rabbitmqctl status

4.5 配置各节点的hosts文件

文件路径:vi /etc/hosts

文件内容:(注:名称为2.2.3中的节点名)

10.170.1.22 linux02

10.170.1.23 linux03

4.6 建立集群

*以ip1服务器为主节点为例,在ip2,ip3上执行相同的如下操作

ip1服务器要启动着(在/usr/lib/rabbitmq/bin下运行rabbitmq-server),然后在ip2和ip3上做以下操作

rabbitmqctl stop_app

rabbitmqctl reset  //可以不做

rabbitmqctl join_cluster rabbit@名称1

rabbitmqctl start_app

 

4.7 查看集群的状态信息

rabbitmqctl cluster_status

 

4.8 镜像队列

1).登录web后台管理页面

2).Admin -> Policies -> Add/update a policy

3).填写内容(例如:

Name:Mirror_RabbitMQ

Pattern:^                         //"^"表示所有,最好手动输入,不要粘贴

Definition:HAmode=exactly

HAprarms=2

HAsyncmode=automatic)

4).Add policy

添加一个,其他的也都会有该策略

以下不用做

4.9 退出集群

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl start_app

 

4.10 移除节点

1)关闭要移除的节点A

rabbitmqctl stop_app

2)在其他节点B移除节点A

rabbitmqctl forget_cluster_node rabbit@rabbitName

 

.负载均衡-HAProxy

5.1 安装epel

rpm -ivh https://mirrors.tongji.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm

5.2 安装HAProxy

yum -y install haproxy

5.1/5.2每台服务器都安装

5.3 修改配置文件

1) 配置文件路径:vi /etc/haproxy/haproxy.cfg

注:此配置需要在每台服务器上做一下,里面标红的IP必须和该配置文件所在的服务器IP一致

2)在配置文件中追加如下内容:

#---------------------------------------------------------------------

# RabbitMQ集群负载均衡

#---------------------------------------------------------------------

# 1.HAProxy统计页面配置

# 通过访问http://10.170.1.18:1080/haproxy/stats 账号密码admin:admin查看统计信息

listen haproxy_front 10.170.1.18:1080

        mode http

        stats refresh 30s

        stats uri /haproxy/stats

        stats realm Haproxy Manager

        stats auth admin:admin

 

# 2.rabbitmq集群负载均衡配置

# 通过10.170.1.18:5678接入rabbitmq

listen rabbitmq_cluster 10.170.1.18:5678

        option tcplog

        mode tcp

        timeout client  3h

        timeout server  3h

        balance roundrobin

        server   node1 10.170.1.18:5672 check inter 5s rise 2 fall 3

        server   node2 10.170.1.16:5672 check inter 5s rise 2 fall 3

# 3.rabbitmq集群web管理页面均衡配置

# 访问http://10.170.1.18:15678/ 接入rabbitmq web管理页面

listen rabbitmq_admin 10.170.1.18:15678

        balance roundrobin

        server node1 10.170.1.18:15672

        server node2 10.170.1.16:15672

5.4 重启HAproxy

service haproxy restart

然后网页访问http://10.170.1.23:15678

六.主备-Keepalived

6.1 安装Keepalived

yum install keepalived

6.2 创建监控脚本

脚本路径:vi /etc/keepalived/check_haproxy.sh

脚本内容:

#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then       

fi

sleep 2

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then

        service keepalived stop

fi

6.1/6.2主备机都需要做

6.3 修改主机Keepalived配置文件

文件路径:vi /etc/keepalived/keepalived.conf  (这个文件先删除,然后在新建即可)

文件内容:

#Keepalived配置文件

global_defs {

        router_id NodeA                 #路由ID, 主备的ID不能相同

}

 

#自定义监控脚本

vrrp_script chk_haproxy {

        script "/etc/keepalived/check_haproxy.sh"

        interval 5

        weight 2

}

 

vrrp_instance VI_1 {

        state MASTER    #Keepalived的角色。Master表示主服务器,从服务器设置为BACKUP

        interface eth0          #指定监测网卡

        virtual_router_id 1

        priority 100            #优先级,BACKUP机器上的优先级要小于这个值

        advert_int 1            #设置主备之间的检查时间,单位为s

        authentication {        #定义验证类型和密码

                auth_type PASS

                auth_pass root123

        }

        track_script {

                chk_haproxy

        }

        virtual_ipaddress {     #虚拟地址(可以随便设,主备保持一致即可),可以设置多个

                192.1.170.180

        }

}

 

6.4 修配备机Keepalived配置文件

文件路径:vi /etc/keepalived/keepalived.conf  (这个文件先删除,然后在新建即可)

#Keepalived配置文件

global_defs {

        router_id NodeB                 #路由ID, 主备的ID不能相同

}

 

#自定义监控脚本

vrrp_script chk_haproxy {

        script "/etc/keepalived/check_haproxy.sh"

        interval 5

        weight 2

}

 

vrrp_instance VI_1 {

        state BACKUP    #Keepalived的角色。Master表示主服务器,从服务器设置为BACKUP

        interface eth0          #指定监测网卡

        virtual_router_id 1

        priority 50            #优先级,BACKUP机器上的优先级要小于这个值

        advert_int 1            #设置主备之间的检查时间,单位为s

        authentication {        #定义验证类型和密码

                auth_type PASS

                auth_pass root123

        }

        track_script {

                chk_haproxy

        }

        virtual_ipaddress {     #虚拟地址,可以设置多个

                192.1.170.180

        }

}

6.5 启动Keepalived

service keepalived start

6.6 查看Keepalived运行情况(可不看)

1)查看Keepalived日志输出

tail -f /var/log/messages -n 200

2)查看添加的虚拟IP

ip add show

3)MASTER模拟异常关闭

service keepalived stop

对应的MASTER上的虚拟IP也会消失

MASTER关闭后,BACKUP成为新的MASTER

6.7 代码访问RabbitMQ

1) IP 为Keepalived中配置的虚拟IP

2) PORT 为RabbitMQ的PORT 默认为5672

3)  账号密码同RabbitMQ

七.运行在内存或者硬盘中

注意:集群搭建完毕后,测试中是只在备机上修改成功了,主机上修改不成功

在/usr/lib/rabbitmq/bin下运行,rabbitmq默认安装在这里

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type ram

rabbitmqctl start_app

注:disc-硬盘,ram-内存

八、springboot连接rabbitMQ集群配置

spring:

# 消息队列配置

rabbitmq:

host: 192.1.170.180    #虚拟地址

port: 5672

username: ****

password: ****

listener:

simple:

acknowledge-mode: AUTO

参考链接

[ 1 ]    http://www.rabbitmq.com/tutorials/tutorial-one-java.html

RabbitMQ队列模式介绍

[ 2 ]    https://www.cnblogs.com/xmzJava/p/8036591.html

Springboot Rabbitmq 整合

[ 3 ]    https://www.cnblogs.com/lylife/p/5584019.html

Rabbitmq+haproxy+keepalived实现高可用集群搭建

[ 4 ]    http://blog.csdn.net/woogeyu/article/details/51119101

RabbitMQ分布式集群架构

[ 5 ]   https://www.cnblogs.com/lion.net/p/5725474.html

RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡

[ 6 ]    http://blog.csdn.net/u013256816/article/details/77171017

RabbitMQ负载均衡(3)——Keepalived+HAProxy实现高可用的负载均衡

[ 7 ]   http://blog.csdn.net/u014308482/article/details/52947492

RabbitMQ常用命令

RabbitMQ集群搭建和使用的更多相关文章

  1. RabbitMq 集群搭建

        实验环境: 操作系统为 Centos 7.2 IP hostName 192.168.190.132 node132 192.168.190.139 node139 192.168.190.1 ...

  2. centos7 rabbitmq集群搭建+高可用

    环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -r -.el ...

  3. CentOS 7 下 RabbitMQ 集群搭建

    环境 10.0.0.20 node1 10.0.0.21 node2 10.0.0.22 node3 搭建(在所有节点执行) 添加EPEL源 [root@node1 ~]# rpm -Uvh http ...

  4. rabbitmq集群搭建方法简介(测试机linux centos)【转】

    本文将介绍四台机器搭建rabbitmq集群: rabbitmq IP和主机名(每台机器已安装RabbitMQ 3.5.6, Erlang 18.1) 192.168.87.73 localhost73 ...

  5. rabbitmq集群搭建,镜像队列搭建

    原文地址:https://www.jianshu.com/p/11963564dd3d 教你如何从0开始搭建rabbitmq集群 一.准备工作 1.三台centos虚拟机 2.三台虚拟机都安装了doc ...

  6. RabbitMQ集群搭建

    准备三个节点,系统为CentOS7 Node IP rabbitmq01 172.50.0.64 rabbitmq02 172.50.0.65 rabbitmq03 172.50.0.66 这里把no ...

  7. rabbitmq+haproxy+keepalived实现高可用集群搭建

    项目需要搭建rabbitmq的高可用集群,最近在学习搭建过程,在这里记录下可以跟大家一起互相交流(这里只是记录了学习之后自己的搭建过程,许多原理的东西没有细说). 搭建环境 CentOS7 64位 R ...

  8. RabbitMQ的安装及集群搭建方法

    RabbitMQ安装 1 安装erlang 下载地址:http://www.erlang.org/downloads 博主这里采用的是otp_src_19.1.tar.gz (200MB+) [roo ...

  9. 搭建rabbitmq集群

    查看rabbitmq日志文件 开启web管理工具 [root@controller rabbitmq]# rabbitmq-plugins list [root@controller rabbitmq ...

随机推荐

  1. Android:剖析源码,随心所欲控制Toast显示

    前言 Toast相信大家都不会陌生吧,如果对于Toast不甚了解,可以参考我的上一篇博客<Android:谈一谈安卓应用中的Toast情节>,里面有关于Toast基础比较详细的介绍.但是如 ...

  2. Python接口自动化

    1.unittest单元测试框架&接口介绍 2.接口测试框架设计 3.接口的安全机制 4.Mock服务介绍&实现原理 5.Jenkins使用和配置 6 .发送邮箱设置

  3. Linux~常用的命令

    大叔学Linux就一个目的,部署在它上面的服务,如redis,mongodb,fastDFS,cat,docker,mysql,nginx等 下面找一下的命令,来学学这个神秘的操作系统 常用指令 ls ...

  4. DocX开源WORD操作组件的学习系列四

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  5. man帮助文档打印

    这里不讨论大家都知道的man重定向的一般常用方法(col处理方法)$ man find | col -b > man_fine.txt [跟着我的思路走]假如您像我一样,直接使用如下命令导出fi ...

  6. PC逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第二讲,被除数是正数 除数非2的幂

    目录 一丶简介 二丶代码还原讲解 1.被除数无符号 除数非2的幂 2.被除数无符号 除数为特例7 三丶代码还原总结 一丶简介 上一篇博客说的除2的幂. 如果被除数是有符号的,那么会进行调整,并使用位操 ...

  7. PC逆向之代码还原技术,第二讲寻找程序入口点

    PC逆向之代码还原技术,第二讲寻找程序入口点 一丶简介 程序逆向的时候.我们需要知道程序入口点.动态分析的时候以便于看是什么程序编写的. 比如VC++6.0 我们可以写一个程序测试一下 我们写一段代码 ...

  8. Apache coredump 问题发现与解决记录

    目录 Apache coredump 问题发现与解决记录 背景 发现问题 解决问题 方法 1 方法 2 总结 Linux 程序编译链接动态库版本问题 ldd 命令 动态库的编译和 soname 线上 ...

  9. Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

    在4.4版本中,大家对产品优化的一些建议和意见进行了相应的优化和修复,同时,还新增了一些令人激动的功能和插件. 下面先为大家介绍4.4版本中Smobiler的优化和修复: 优化 1, PageView ...

  10. [PHP] 适配器模式的日常使用

    适配器模式就是将一个类的接口方法转换成我希望用的另一个方法 , 下面是个常见的用处 class Session{ public $mc; public function __construct(){ ...