简介

  通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本方案中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务。

1. 安装erlang,参考:http://fedoraproject.org/wiki/EPEL/FAQ#howtouse

rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install erlang

2. 安装rabbitmq

# 下载rpm安装包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 安装
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 启动rabbitmq服务
service rabbitmq-server start
# 查看服务状态
service rabbitmq-server status
# 开放rabbitmq的使用,默认用户guest,密码guest
cd /etc/rabbitmq/
vi rabbitmq.config # 再打开的窗口中新增内容如下:
[{rabbit, [{loopback_users, []}]}].
# 重启服务
service rabbitmq-server stop
service rabbitmq-server start
# 开放5672端口访问
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload

3. 开启后台UI管理插件

rabbitmq-plugins enable rabbitmq_management
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload # 以上完成后即可访问:http://{host}:15672

4. 开启消费记录日志功能

 # 启用记录插件

 rabbitmq-plugins enable rabbitmq_tracing

 # 启用跟踪记录

 rabbitmqctl trace_on

 # 以上配置完成后,即可在后台管理界面 --> Admin --> Tracing 添加跟踪配置:

 

 # 点击dev.log 即可查看日志文件

 

5. 配置rabbitmq集群节点

 # 服务器:10.18.32.7(节点1) , 10.18.32.8(节点2)

 (1). 配置hostname

  # 在各节点服务器上配置hostname:rabbitmq-1,rabbitmq-2
  vim /etc/hostname (2). 配置host   # 在各节点服务器上配置host
  vim /etc/hosts
  

  (3). 设置各节点Cookie保持一致

    service rabbitmq-server stop

    chmod 700 /var/lib/rabbitmq/.erlang.cookie

    echo -n "AZVOCZYZZBVFLBPTBXU" > /var/lib/rabbitmq/.erlang.cookie

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

    service rabbitmq-server start

  (4). 开通防火墙集群通讯端口

  firewall-cmd --permanent --add-port={4369/tcp,25672/tcp}
  firewall-cmd --reload
(5). 将节点2、3...加入节点一中

  rabbitmqctl stop_app
  rabbitmqctl join_cluster rabbit@server1
  rabbitmqctl start_app (6). 设置各节点镜像策略   rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

7. 后期维护版本升级

 (1). 升级Erlang

  # 移除旧版erlang,可以通过 erl -version 查看当前安装版本

  yum remove erlang.*

  yum remove erlang-*

  # 自动安装erlang的YUM源

  wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

   rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

  yum install erlang

 (2). 升级RabbitMQ

 # 从官网(https://www.rabbitmq.com/install-rpm.html#with-rpm)找到最新版下载地址
 wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm

 rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
 yum install rabbitmq-server-3.7.2-1.el7.noarch.rpm
 # 以上步骤完成后,按照以上重启服务即可

参考链接:
  http://www.cnblogs.com/uptothesky/p/6094357.html
  http://www.cnblogs.com/edward2013/p/5061511.html
  https://www.jianshu.com/p/3a625aacd9aa

CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看的更多相关文章

  1. Docker:搭建RabbitMQ集群

    RabbitMQ原理介绍(一) RabbitMQ安装使用(二) RabbitMQ添加新用户并支持远程访问(三) RabbitMQ管理命令rabbitmqctl详解(四) RabbitMQ两种集群模式配 ...

  2. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...

  3. CentOS7环境RabbitMQ集群配置管理(转载)

    CentOS7环境RabbitMQ集群配置管理(转载)   CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64 一.对应主机host地址(三台主机host文件要保持一致) ...

  4. 搭建RabbitMQ集群(Docker)

    前一篇搭建RabbitMQ集群(通用)只是把笔记直接移动过来了,因为我的机器硬盘已经满了,实在是开不了那么虚拟机. 还好,我的Linux中安装了Docker,这篇文章就简单介绍一下Docker中搭建R ...

  5. Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

    RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...

  6. centos7搭建kafka集群-第二篇

    好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软 ...

  7. 搭建rabbitmq集群

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

  8. 集群架构和CentOS7安装RabbitMQ集群(单机版)

    1. 集群架构 1.1 四种内部元数据 队列元数据.交换器元数据.绑定元数据.vhost元数据. 单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘. 集群中: 存储到磁盘上.内存中. 集群 ...

  9. CentOS7安装rabbitmq集群(二进制)

    一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...

随机推荐

  1. 如何实现监听 console.log

    var lastLog; console.oldLog = console.log; console.log = function(str) { console.oldLog(str); lastLo ...

  2. flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)

    flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...

  3. QTreeView/QTableView中利用QStandardItem实现复选框三种形态变化

    https://www.techieliang.com/2017/12/729/ 原文地址 using_checkbox_item.h /** * @file using_checkbox_item. ...

  4. 设计能长按并有动画效果且能触发事件的高级view

    设计能长按并有动画效果且能触发事件的高级view 效果图: 源码: LongTapAnimationView.h 与 LongTapAnimationView.m // // LongTapAnima ...

  5. rabbitmq集群方案

    RabbitMQ的集群方案有以下几种: 1.普通的集群 exchange,buindling再所有的节点上都会保存一份,但是queue只会存储在其中的一个节点上,但是所有的节点都会存储一份queue的 ...

  6. Python初学者第二十一天 函数(4)-内置函数

    21day 内置函数: 1.abs()绝对值函数 2.dict()创建一个字典 3.help()获取帮助信息 4.min()从一个列表中取出最小的数 5.max()从一个列表中取出最大值 6.bool ...

  7. 5 Dockerfile指令详解 && CMD 指令

    CMD 指令的格式和 RUN 相似,也是两种格式: shell 格式: CMD <命令> exec 格式: CMD ["可执行文件", "参数1", ...

  8. 低版本兼容使用Fragment (转)

    Fragment框架开发东西确实很方便,但是恼人的是从4.0才开始支持.以前的版本必须用兼容模式开发,本人在网上找了大量资料,终于找到些线索正常运行于2.1版本的安卓系统.现在浅说一下兼容版本使用Fr ...

  9. HttpClient简述

    HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率 ...

  10. PHP_GET后门,躲避任何安全软件

    经常拿到一些比较好的php站想要留住.插入菜刀一句话,很容易被管理发现,不管是eval还是assert,就是管理发现不了,有时连接也会被各种的安全软件拦截.现在教大家一个简单的技巧.本人一直在用,留的 ...