安装
准备工作:
下载相关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安装
- 下载对应版本,直接安装
- 配置环境变量:新建ERLANG_HOME,值为程序的安装目录
- Linux安装
- 下载源码otp_src_19.0.tar.gz
- 执行:tar -zxf otp_src_19.0.tar.gz 解压
- 进入解压后的目录,执行:./configure --prefix=/home/rabbitmq/erlang --without-javac
- 执行:make
- 执行:make install
- 修改文件 /home/rabbitmq/.bash_profile 在文件最后添加一下内容:
PATH=$PATH:/home/rabbitmq/erlang/bin export PATH - 执行 source /home/rabbitmq/.bash_profile
- 执行:erl 能显示版本信息则说明安装成功。
安装RabbitMQ
RabbitMQ下载链接https://www.rabbitmq.com/download.html
- 上传压缩包,执行以下命令解压:
解压缩
|
rabbitmq-server-generic-unix-3.6.2.tar.xz 文件变成 rabbitmq-server-generic-unix-3.6.2.tar 文件
拆包
|
- 运行
- Windows 环境下,只要 Step1 配置好了 ERLANG_HOME,可以直接进入安装目录 \sbin 下,执行 rabbitmq-server.bat
- Linux 环境下,需要设置 ERL_DIR 的 path,进入 /home/rabbitmq/rmq/rabbitmq_server-3.6.2/sbin/ 下,将 rabbitmq-defaults 中的 "ERL_DIR= " 一行改为 "ERL_DIR=/home/rabbitmq/erlang/bin/" 后
- 执行 ./rabbitmq-server -detached 启动 rabbitmq
启用RabbitMQ管理控制台
RabbitMQ的扩展功能依赖插件实现,Web管理控制台就是其中之一。
- Linux
- 进入安装目录/sbin
- 执行 ./rabbitmq-plugins enable rabbitmq_management
- 执行 ./rabbitmqctl stop 停止RabbitMQ服务
- 执行 ./rabbitmq-server -detached
- windows
- 进入安装目录\sbin
- 执行 rabbitmq-plugins.bat enable rabbitmq_management
- 执行 rabbitmqctl.bat stop 停止RabbitMQ服务
- 执行:rabbitmq-server.bat 重新启动RabbitMQ服务
- 新建用户,方法如下(建立用户名/密码为adimn/admin的用户):
- 进入安装目录\sbin下,执行 ./rabbitmqctl add_user admin admin
- 执行 ./rabbitmqctl set_user_tags admin administrator
- 执行 ./rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
- 打开浏览器访问:http://{IP}:15672 使用刚才建立的用户名/密码:admin/admin
MQ集群
前提条件
- 三台服务器上 rabbitmq 已由rabbitmq 用户正确安装
- /etc/hosts 文件对rabbitmq用户有读写权限
- /home/rabbitmq/.erlang.cookie 文件对rabbitmq用户有读写权限,并且只能是当前用户具有读写权限。即.erlang.cookie的权限为:-rw-------。如果不是这样,可以使用chmod 600命令。
- 所有机器之间可以通过: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 目录下运行:
|