CentOS下的rabbitMQ集群安装,高并发消息队列中间件
需要的文件:
1、rabbitmq安装依赖erlang,安装包otp_src_R15B01.tar.gz,由于较大,不能在CSND上传,请自行搜索下载。
2、rabbitmq-server-generic-unix-2.8.2.tar.gz安装包下载地址:下载
一、erlang的安装:
1、将elang安装包otp_src_R15B01.tar.gz上传到某个目录下.
2、tar -zxvf otp_src_R15B01.tar.gz
3、cd otp_src_R15B01 进入解压后的目录
4、执行./configure --prefix=/opt/erlang 就会开始编译安装 会编译到 /opt/erlang 下
5、执行make && make install
6、vi /etc/profile增加
export PATH=$PATH:/opt/erlang/bin
7、执行source /etc/profile使得环境变量生效
二、rabbitMQ的安装:
1、将rabbitmq-server-generic-unix-2.8.2.tar.gz以root用户身份上传到某目录下.
2、执行 tar -zxvf rabbitmq-server-generic-unix-2.8.2.tar.gz -C /opt 解压到opt目录下。
3、cd /opt,建立软链接ln -s rabbitmq_server-2.8.2/ rabbitmq
4、修改/etc/profile,添加环境变量
export PATH=$PATH:/opt/rabbitmq/sbin
5、执行source /etc/profile使得环境变量生效
6、[启动] cd rabbitmq/sbin
执行./rabbitmq-server -detached可以实现后台启动,如果非后台启动直接./rabbitmq-server start
7、[关闭] cd /opt/rabbitmq/sbin,./rabbitmqctl stop关闭rabbitmq
8、./rabbitmq-plugins list可以查看目前安装并是否生效的插件,[E]代表生效
9、启用网页方式管理MQ插件,cd /opt/rabbitmq/sbin/
执行./rabbitmq-plugins enable rabbitmq_management
然后访问http://ip:55672或http://ip:15672,如果不能访问,则考虑防火墙限制。
执行./rabbitmq-plugins enable rabbitmq_management
然后访问http://ip:55672或http://ip:15672,如果不能访问,则考虑防火墙限制。
开放防火墙23端口权限 vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 55672 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 15672 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5672 -j ACCEPT
然后重启防火墙:service iptables restart
如果要关闭插件则./rabbitmq-plugins disable 插件名称(可通过list查看)
10、如果新加的用户没有权限登录网页版管理台,则
./rabbitmqctl set_user_tags newuser administratorment 即可
三、rabbitmq 高可用镜像集群
1、进入rabbitmq/sbin目录下,执行rabbitmq-plugins enable rabbitmq_management 使得网页管理插件生效。
2、修改rabbitmq所在机器的hosts,追加方式, vi /etc/hosts
192.168.62.137 137mq
192.168.62.141 143mq
192.168.62.142 144mq
此命令后,机器之间可以通过ping 141mq的方式,直接ping 192.168.62.141
3、设置Elang Cookie
rabbitmq依赖于erlang,集群是通过erlang.cookie文件中的值来实现的,在其中一台rabbitmq服务器
find -name .erlang.cookie,将里面的值复制到其他mq环境中,该文件是集群节点进行通信的验证密钥,所有节点必须一致。
注意此文件是只读的。
首先chmod 777 .erlang.cookie,然后复制,拷贝到其他MQ服务器即可。
全部修改完后,需要将.erlang.cookie文件再次设置为只读 chmod 400 .erlang.cookie ,否则启动MQ时会报错。
4、使用 -detached 参数运行各节点,运行后才能集群
# rabbitmqctl stop
# rabbitmq-server -detached
# rabbitmq-server -detached
5、组成集群,比如三台机器集群,只需要在其他2台机器执行如下命令,将自己加入到指定节点
节点名称是/etc/hosts中配置的名称,如将137mq、143mq与144mq组成集群:
在143mq机器上执行,将自己加入到137mq
143mq # rabbitmqctl stop_app
143mq # rabbitmqctl join_cluster rabbit@137mq
143mq # rabbitmqctl start_app
在144mq机器上执行,将自己入到137mq
144mq # rabbitmqctl stop_app
144mq # rabbitmqctl join_cluster rabbit@137mq
144mq # rabbitmqctl start_app
节点名称是/etc/hosts中配置的名称,如将137mq、143mq与144mq组成集群:
在143mq机器上执行,将自己加入到137mq
143mq # rabbitmqctl stop_app
143mq # rabbitmqctl join_cluster rabbit@137mq
143mq # rabbitmqctl start_app
在144mq机器上执行,将自己入到137mq
144mq # rabbitmqctl stop_app
144mq # rabbitmqctl join_cluster rabbit@137mq
144mq # rabbitmqctl start_app
四、rabbitMQ的命令含义
1.停止RabbitMQ应用,关闭节点# rabbitmqctl stop
2.停止RabbitMQ应用
# rabbitmqctl stop_app
3.启动RabbitMQ应用
# rabbitmqctl start_app
4.显示RabbitMQ中间件各种信息
# rabbitmqctl status
5.重置RabbitMQ节点,从它属于的任何集群中移除,从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息。
force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。
注意:只有在停止RabbitMQ应用后,reset和force_reset才能成功。 ra
# rabbitmqctl reset
# rabbitmqctl force_reset