CentOS 6.4 安装 rabbitmq(3.6.15)

安装废了一番周折,中间需要装一个socat,网上各种过时的地址。

无奈去socat官网,结果提供编译安装,编译安装完yum install rabbitmq的时候仍然提示缺少需要的依赖,烦,好在折腾两个小时最后装上了,简述步骤如下:

需要的rpm:

socat-1.7.1.3-.el6.rf.x86_64.rpm
rabbitmq-server-3.6.-.el6.noarch.rpm
erlang-20.2.-.el6.x86_64.rpm

注意:如果想装其他版本的,务必关注一下erlang和rabbitmq的对应关系,传送门(http://www.rabbitmq.com/which-erlang.html

各自的下载原地址(这些rpm的地址随时可能过期,我有一个链接可以献给看官 链接:https://pan.baidu.com/s/1pMVT9KR 密码:5ff1):

socat的地址:

http://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/socat-1.7.1.3-1.el6.rf.x86_64.rpm

后两个从官网找到的:

CentOS 6.4 安装 rabbitmq(3.6.15)

https://bintray.com/rabbitmq/rpm/download_file?file_path=erlang%2F20%2Fel%2F6%2Fx86_64%2Ferlang-20.2.2-1.el6.x86_64.rpm
https://bintray.com/rabbitmq/rpm/download_file?file_path=rabbitmq-server%2Fv3.6.x%2Fel%2F6%2Fnoarch%2Frabbitmq-server-3.6.15-1.el6.noarch.rpm

也可以直接去erlang官网下载:

https://www.erlang-solutions.com/resources/download.html

下载完后,安装顺序如下:

erlang
socat
rabbitmq 命令均为:
yum install xxxxx.rpm

注册为服务并启动,命令:

chkconfig rabbitmq-server on
/sbin/service rabbitmq-server start

因为默认的guest用户只能在本地登陆,所以我们增加用户并设定角色(https://www.cnblogs.com/mingaixin/p/4134920.html):

rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator management

给用户增加vhost的访问权限(默认会有一个vhost 路径是 "/",如果不够用可以使用命令添加一个vhost: rabbitmqctl add_vhosts test_host,相关内容传送门)

#格式如下
rabbitmqctl set_permissions -p VHostPath User <conf> <write> <read>
#实际命令
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

其中,<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,具体写法本文暂不提供

启动管理后台:

rabbitmq-plugins enable rabbitmq_management
/sbin/iptables -I INPUT -p tcp --dport -j ACCEPT

然后访问该机器的15672就能进入管理后台(http://ip:15672)了,密码账号均为admin

卸载rabbitmq:

yum list installed|grep rabbitmq

yum remove [上面命令输出的结果]

find / -name rabbitmq|xargs rm -rf

---------------------------------2018年4月19日追加-----------------------------------------------

其实只要配置了阿里的rpel源,只需要安装rabbitmq的rpm包即可,依赖关系会自动被解析。

配置阿里rpel源,传送门

默认安装路径:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.15

1、复制某一个节点的 /var/lib/rabbitmq/.erlang.cookie 到所有其他节点的相同位置,覆盖原文件

设置 Erlang Cookie
Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。这里将 node1 的该文件复制到 node2、node3,由于这个文件权限是 400,所以需要先修改 node2、node3 中的该文件权限为 777:
# chmod 777 /var/lib/rabbitmq/.erlang.cookie
然后将 node1 中的该文件拷贝到 node2、node3,最后将权限和所属用户/组修改回来:
# chmod 400 /var/lib/rabbitmq/.erlang.cookie
# chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
# chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie

2、子节点加入集群(需要维护hosts,并且主机名和hosts一致):

rabbitmqctl join_cluster rabbit@fscp-master

3、集群开启高可用

 rabbitmqctl set_policy ha-allqueue "^" '{"ha-mode":"all"}'

4、修改一个节点为RAM

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type ram

rabbitmqctl start_app

参考 参考

官方配置相关文档

上一篇:Netty 拆包粘包和服务启动流程分析


下一篇:Bogo排序