安装 

  准备工作: 

  下载相关jar包 :   

  • erlang:版本为 1.9.0。
  • rabbitmq:版本为 Rabbitmq for Generic Linux 3.6.2

   配置 hosts 文件,在127.0.0.1里加上本机的名称;将相关集群机器的名称也加入来,使得集群之间的机器可以通过 hostname 进行彼此的通信

   安装目录:/home/rabbitmq

  • erlang 的安装目录为:/home/rabbitmq/erlang/。
  • Rabbit MQ 的

安装ERL

  • 由于RabbitMQ由ERLANG实现,需要先安装ERL的运行环境,下载链接http://www.erlang.org/download.htm
  • windows安装
  1. 下载对应版本,直接安装 
  2. 配置环境变量:新建ERLANG_HOME,值为程序的安装目录
  • Linux安装
  1. 下载源码otp_src_19.0.tar.gz
  2. 执行:tar -zxf otp_src_19.0.tar.gz  解压
  3. 进入解压后的目录,执行:./configure --prefix=/home/rabbitmq/erlang --without-javac
  4. 执行:make
  5. 执行:make install
  6. 修改文件 /home/rabbitmq/.bash_profile 在文件最后添加一下内容:
    PATH=$PATH:/home/rabbitmq/erlang/bin export PATH
  7. 执行 source /home/rabbitmq/.bash_profile
  8. 执行:erl 能显示版本信息则说明安装成功。

安装RabbitMQ

RabbitMQ下载链接https://www.rabbitmq.com/download.html

  1. 上传压缩包,执行以下命令解压:

    解压缩
xz -d rabbitmq-server-generic-unix-3.6.2.tar.xz

rabbitmq-server-generic-unix-3.6.2.tar.xz 文件变成 rabbitmq-server-generic-unix-3.6.2.tar 文件

拆包

tar -xvf rabbitmq-server-generic-unix-3.6.2.tar
  1. 运行
  1. Windows 环境下,只要 Step1 配置好了 ERLANG_HOME,可以直接进入安装目录 \sbin 下,执行 rabbitmq-server.bat
  2. Linux 环境下,需要设置 ERL_DIR 的 path,进入 /home/rabbitmq/rmq/rabbitmq_server-3.6.2/sbin/ 下,将 rabbitmq-defaults 中的 "ERL_DIR= 一行改为 "ERL_DIR=/home/rabbitmq/erlang/bin/
  3. 执行 ./rabbitmq-server -detached 启动 rabbitmq

启用RabbitMQ管理控制台

RabbitMQ的扩展功能依赖插件实现,Web管理控制台就是其中之一。

  • Linux
  1. 进入安装目录/sbin
  2. 执行 ./rabbitmq-plugins enable rabbitmq_management
  3. 执行 ./rabbitmqctl stop  停止RabbitMQ服务
  4. 执行 ./rabbitmq-server -detached
  • windows
  1. 进入安装目录\sbin
  2. 执行 rabbitmq-plugins.bat enable rabbitmq_management
  3. 执行 rabbitmqctl.bat stop  停止RabbitMQ服务
  4. 执行:rabbitmq-server.bat  重新启动RabbitMQ服务

 

  • 新建用户,方法如下(建立用户名/密码为adimn/admin的用户):
  1. 进入安装目录\sbin下,执行 ./rabbitmqctl add_user admin admin
  2. 执行 ./rabbitmqctl set_user_tags admin administrator
  3. 执行 ./rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
  • 打开浏览器访问:http://{IP}:15672  使用刚才建立的用户名/密码:admin/admin

MQ集群

前提条件

  1. 三台服务器上 rabbitmq 已由rabbitmq 用户正确安装
  2. /etc/hosts 文件对rabbitmq用户有读写权限
  3. /home/rabbitmq/.erlang.cookie 文件对rabbitmq用户有读写权限,并且只能是当前用户具有读写权限。即.erlang.cookie的权限为:-rw-------。如果不是这样,可以使用chmod 600命令。
  4. 所有机器之间可以通过:25672 和 4369 端口访问到其它机器

集群步骤

     1、分别配置三台服务器 /etc/hosts 文件

    10 X.X.64  RABBITMQ1
    10.X.X.65  RABBITMQ2 
    10.X.X.66  RABBITMQ3

          修改65和66服务器上 /home/rabbitmq/.erlang.cookie 文件,使之与64服务器文件值相同(可为任意值),这是erlang的约定,一样的cookie hash key被认为是合法和正确的连接。这个文件是erlang用来发现和互连的基础

          分别进入到各个服务器下的 /home/rabbitmq/rmq/rabbitmq_server-3.6.2/sbin目录,使用 -detached 命令运行各节点

         

注意:

  • 任意时候必须有一个 disk node 在运行。
  • 当整个集群失效后,最后一个 失效/关闭 的节点必须是第一个恢复的节点。当一个节点启动后,它会等待最后一个下线的节点 30 秒,等不到的话就启动
    失败了。如果那个最后一个下线的节点无法恢复了,可以使用 forget_cluster_node 命令将这个节点从集群中剔除掉。
  • 如果一个集群的节点同时停机或者失控(比如掉电)。对于这种情形,所有的节点都认为自己比其它节点先关闭。可以在其中一个节点上使用 force_boot
    命令令其可以启动。

分别在65和66服务器 /home/rabbitmq/rmq/rabbitmq_server-3.6.2/sbin 目录下运行:

./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@TK-RABBITMQ1
./rabbitmqctl start_app