一、RabbitMQ安装

1.1、下载Erlang的rpm包

  RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.html

  Erlang下载地址:https://www.rabbitmq.com/releases/erlang/(根据自身需求及匹配关系,下载对应rpm包)

请一定要注意 erlang的版本要跟 rabbitmq的版本要对应一致,不然会出现各种异常的错误。

1.2、下载RabbitMQ的rpm包

  RabbitMQ下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/(根据自身需求及匹配关系,下载对应rpm包)

1.3、下载socat的rpm包

  rabbitmq安装依赖于socat,所以需要下载socat。

  socat下载地址:http://repo.iotti.biz/CentOS/6/x86_64/socat-1.7.3.2-1.el6.lux.x86_64.rpm

1.4、需要安装logrotate 

yum -y install logrotate

1.5、分别安装Erlang、Socat、RabbitMQ(一定按照顺序!)

一定按照以下顺序安装

[root@A ~]#rpm -ivh erlang-18.3-1.el6.x86_64.rpm

[root@A ~]#rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm

[root@A ~]#rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

二、配置Rabbitmq

2.1、配置rabbitmq

如果仅仅是允许guest账号访问的话,则需要做以下操作:

vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

2.2、启用web管理插件

[root@A ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management Applying plugin configuration to rabbit@bigdata-arch-client11... started 6 plugins.

2.3、启动RabbitMQ

[root@A ~]cd /var/lib/rabbitmq/

[root@A ~]chown -R rabbitmq:rabbitmq .erlang.cookie

[root@A ~]cd /usr/lib/rabbitmq/bin

[root@A ~]./rabbitmq-server start  #centos 7.0=>/bin/systemctl start rabbitmq-server.service

访问浏览器:http://ip地址:15672/,出现以下界面说明安装完成!默认用户名和密码都是:guest

三、配置RabbitMQ的账号

1、创建账号

rabbitmqctl add_user 用户名   密码

[root@A ~]# rabbitmqctl add_user admin admin
Creating user "admin"

如想修改密码:

rabbitmqctl change_password 用户名 密码

[root@A ~]# rabbitmqctl change_password  admin test.1234
Creating user "admin"

2、将admin账号赋予管理员权限

rabbitmqctl set_user_tags 用户名  administrator

[root@A ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]

3、设置权限

rabbitmqctl  set_permissions  -p  '/'  用户名'.' '.' '.'

[root@A ~]# rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'
Setting permissions for user "admin" in vhost "/"

四、配置RabbitMQ集群

前提:我们这里会展示如何配置一个RabbitMQ集群,要保证三台服务器的IP能通。而且特别强调的是三台机器的服务都要配置上hosts:

[root@A ~]vim  /etc/hosts
10.55.202.181 rabbitmqserver01 #第1台机器的 ip地址 主机名
10.55.202.182 rabbitmqserver02 #第2台机器的 ip地址 主机名
10.55.202.183 rabbitmqserver03 #第3台机器的 ip地址 主机名

1、安装好RabbitMQ

安装方法请按照上文描述

2、保证相同的Erlang Cookie

我这里是把rabbitmqserver01上的.erlang.cookie以scp的方式拷贝到另外两台机器。(如果mq没有启动过是没有erlang.cookie的)

[root@rabbitmqserver01 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmqserver02:/var/lib/rabbitmq
[root@rabbitmqserver01 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmqserver03:/var/lib/rabbitmq

3、 运行各个RabbitMQ节点

#systemctl restart rabbitmq-server.service
#rabbitmqctl stop
#rabbitmq-server -detached

4、运行成功后可以查看一下节点当前的集群状态,当然这个时候还没有组成集群。

[root@rabbitmqserver01 ~]# rabbitmqctl cluster_status
[root@rabbitmqserver02 ~]# rabbitmqctl cluster_status
[root@rabbitmqserver03 ~]# rabbitmqctl cluster_status

5、将节点连接成群

rabbitmqserver02:加入到集群rabbit@rabbitmqserver01

[root@rabbitmqserver02 ~]#rabbitmqctl stop_app
[root@rabbitmqserver02 ~]#rabbitmqctl join_cluster --ram rabbit@rabbitmqserver01
[root@rabbitmqserver02 ~]#rabbitmqctl start_app

rabbitmqserver03: 加入到集群rabbit@rabbitmqserver02

[root@rabbitmqserver03 ~]#rabbitmqctl stop_app
[root@rabbitmqserver03 ~]#rabbitmqctl join_cluster --ram rabbit@rabbitmqserver01
[root@rabbitmqserver03 ~]#rabbitmqctl start_app

A:不用加入自己

查看集群状态,我们可以在任意一台机器上查看,我们选择在client09上看

[root@A ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@A
[{nodes,[{disc,[rabbit@rabbitmqserver01,rabbit@rabbitmqserver02,rabbit@rabbitmqserver03]}]},
{running_nodes,[rabbit@rabbitmqserver03,rabbit@rabbitmqserver02,rabbit@rabbitmqserver01]},
{cluster_name,<<"rabbit@rabbitmqserver01">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmqserver03,[]},{rabbit@rabbitmqserver02,[]},{rabbit@rabbitmqserver01,[]}]}]

这边需要强调的是,三台机器中必须有一台是磁盘模式,可以允许三台都是磁盘模式。

rabbitmqctl join_cluster --ram rabbit@rabbitmqserver01  => --ram 表示是内存模式
rabbitmqctl join_cluster rabbit@rabbitmqserver01 => 表示是磁盘模式

如果要切换模式的话:

rabbitmqctl change_cluster_node_type {disc|ram}

可以看到,3个实例已经组成了集群:

如果想删除节点的话:

rabbitmqctl  -n rabbit@shtw-rabbitmqserver01 forget_cluster_node rabbit@shtw-rabbitmqserver03

最新文章

  1. Expert 诊断优化系列------------------你的CPU高么?
  2. Maven命令行使用:mvn clean package(打包)
  3. centos 7安装部署docker
  4. Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
  5. Python 学习之urllib模块---用于发送网络请求,获取数据(2)
  6. 在UC浏览器上很炫的一个效果
  7. sql中的split方法
  8. #include&lt;bits/stdc++.h&gt;
  9. 百度插件webuploader的坑!
  10. c++ 智能指针用法详解
  11. 【转帖】介绍 .NET Standard
  12. maven ${path.separator}
  13. 关于JavaScript的操作
  14. 16.IO之其他流
  15. BufferReader BufferWriter
  16. win7系统Oracle数据库本地备份
  17. 【ThreadLocal】使用ThreadLocal实现线程安全
  18. 使用cgroup进行系统资源使用限制
  19. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
  20. 第二章 Google guava cache源码解析1--构建缓存器

热门文章

  1. Selenium 调用IEDriverServer打开IE浏览器
  2. VMware Workstation Pro 15 序列号
  3. 怎样通过正则匹配IP地址
  4. Python通用爬虫,聚焦爬虫概念理解
  5. 使用async和await的异步编程
  6. C# List 转 Tree 公共方法
  7. js循环修改数组属性key值
  8. 等保测评中与oracle有关的工作
  9. K2 BPM_康熙别烦恼(上篇)——分级授权_工作流引擎
  10. iOS 开发之模糊效果的五种实现