Linux安装RabbitMq和Erlang-搭建集群
Rabbitmq rpm包 下载地址:https://github.com/rabbitmq/rabbitmq-server/releases
Erlang rpm包 下载地址:https://github.com/rabbitmq/erlang-rpm/releases
Rabbitmq Erlang版本要求:https://www.rabbitmq.com/which-erlang.html
Linux中安装RabbitMq
下载好的 rpm包,放入 /usr/local/software/下:
rpm常用命令
-
-i 安装软件包(–install)
-
–nodeps 不验证软件包的依赖
-
–force 强制安装,即使覆盖其他包的文件也要安装
-
-v 可视化,提供更多的详细信息的输出
-
-h 显示安装进度
-
-a 查询所有已经安装的软件包
-
-f 查询文件所属于的软件包
-
-q 查询软件包(通常用来看下还未安装的软件包,注意,查询时不需要带包名后缀)
-
-l 显示软件包的文件列表
-
-e 卸载指定软件包(注意,卸载时需要指定具体包名后缀)
-
-U 升级软件包,很少用
常用组合:
-
-ivh 安装指定rmp包并显示安装进度
-
-qa 查询所有已经安装的软件包
-
-qi 查询软件包安装信息
-
-ql 显示软件包的文件列表
-
-qf 查询文件所属的文件包
安装文件
-
安装erlang:
rpm -ivh erlang-23.0-1.el7.x86_64.rpm
-
安装rabbitmq所依赖的插件:
yum install socat -y
-
安装rabbitmq:
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
el*
:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用;rpm包有个特点,centOS7的rpm包一般只能装到CentOS7的系统里,CentOS6的软件包只能装到CentOS6的系统里
noarch
:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台
常用命令
-
添加开机启动服务:
chkconfig rabbitmq-server on
-
启动服务:
/sbin/service rabbitmq-server start
-
查看服务状态:
/sbin/service rabbitmq-server status
-
停止服务:
/sbin/service rabbitmq-server stop
-
开启 web 管理插件:
rabbitmq-plugins enable rabbitmq_management
, 然后再浏览器中输入当前IP + 15672端口号即可访问,默认账号:guest,密码:guest。登录会发现出现以下问题:出现下面问题按照添加用户命令执行即可,然后使用添加的用户登录。
-
开启应用:
rabbitmqctl stop_start
-
关闭应用:
rabbitmqctl stop_app
添加用户命令
-
创建账号:
rabbitmqctl add_user 账号 密码
-
设置用户角色:
rabbitmqctl set_user_tags 账号 administrator
-
设置用户权限:
rabbitmqctl set_permissions -p "/" 账号 ".*" ".*" ".*"
-
获取用户和角色:
rabbitmqctl list_users
RabbitMq搭建集群
克隆出来两台一样的虚拟机,如下图所示
修改三台服务器的主机名称
-
vi /etc/hostname
-
分别修改为:node1、node2、node3
配置各个节点的 hosts 文件,让各个节点都能互相识别对方
-
vi /etc/hosts
-
分别在三个服务器的host文件中添加以下配置
第一个服务器IP node1
第二个服务器IP node2
第三个服务器IP node3
以确保各个节点的 cookie 文件使用的是同一个值
在 node1
节点上执行远程操作命令
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie
启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和 RbbitMQ 应用服务 在三台节点上分别执行以下命令:
rabbitmq-server -detached
在 node2
、node3
节点上执行以下命令:
注意:(rabbitmqctl stop
会将Erlang 虚拟机关闭,rabbitmqctl stop_app
只关闭 RabbitMQ 服务)
1. rabbitmqctl stop_app
2. rabbitmqctl reset
3. rabbitmqctl join_cluster rabbit@node1
4. rabbitmqctl start_app (只启动应用服务)
查看集群状态
rabbitmqctl cluster_status
需要重新设置用户
-
创建账号:
rabbitmqctl add_user 账号 密码
-
设置用户角色:
rabbitmqctl set_user_tags 账号 administrator
-
设置用户权限:
rabbitmqctl set_permissions -p "/" 账号 ".*" ".*" ".*"
使用上面创建的账号随便访问三台地址都可访问了,如图所示:有三个节点
解除集群节点(node2 和 node3 机器分别执行 – 选择执行)
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl cluster_status
rabbitmqctl forget_cluster_node rabbit@node2 (node1 机器上执行)
原文地址:http://www.cnblogs.com/zjh0420/p/16899346.html