安装RabbitMQ及搭建单机RabbitMQ集群

1、安装Erlang及安装rabbitmq(亲测可用)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhm3023/article/details/82217222

1、安装Erlang

下载地址:https://www.erlang.org/downloads,本文选择OTP 21.0.1 Windows 64-bit Binary File (91707927)

设置环境变量,新建ERLANG_HOME

修改环境变量path,增加Erlang变量至path,%ERLANG_HOME%\bin;

打开cmd命令框,输入erl

至此,Erlang 安装完成

2、安装rabbitmq

下载地址:http://www.rabbitmq.com/download.html

exe安装地址:http://www.rabbitmq.com/install-windows.html

解压缩安装地址:http://www.rabbitmq.com/install-windows-manual.html

本文选择解压缩安装rabbitmq-server-windows-3.7.7.zip

将rabbitmq-server-windows-3.7.7.zip解压缩至D:\Program Files目录下

设置环境变量,新建RABBITMQ_SERVER

修改环境变量path,增加rabbitmq变量至path,%RABBITMQ_SERVER%\sbin;

打开cmd命令框,切换至D:\Program Files\rabbitmq_server-3.7.7\sbin目录下,输入rabbitmqctl status

说明rabbmitmq未启动,继续下面操作。

安装插件,命令:rabbitmq-plugins.bat enable rabbitmq_management,出现:

解决方法: 
将 C:\Users\Administrator\.erlang.cookie 同步至C:\Windows\System32\config\systemprofile\.erlang.cookie 

同时删除:C:\Users\Administrator\AppData\Roaming\RabbitMQ目录

输入命令:rabbitmq-plugins.bat enable rabbitmq_management ,出现下面信息表示插件安装成功:
 

输入命令:rabbitmq-server.bat

rabbitmq启动成功,浏览器中http://localhost:15672

2、彻底删除RabbitMQ

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Anbang713/article/details/82872880
 

要从计算机中完全卸载RabbitMQ和Erlang,请执行以下操作:
(1)打开Windows控制面板,双击“程序和功能”。

(2)在当前安装的程序列表中,右键单击RabbitMQ Server,然后单击“卸载”。

(3)在当前安装的程序列表中,右键单击“Erlang OTP”,然后单击“卸载”。

(4)打开Windows任务管理器。

(5)在任务管理器中,查找进程epmd.exe。 如果此进程仍在运行,请右键单击该进程,然后单击“结束进程”。

(6)删除RabbitMQ和Erlang的所有安装目录。

(7)删除文件C:\ Windows \ .erlang.cookie(如果存在)。

(8)转到用户文件夹:C:\ Users \ [username],然后删除文件.erlang.cookie。删除

(9)同样在User文件夹中,转到AppData \ Roaming \ RabbitMQ。删除RabbitMQ文件夹。

(10)打开运行cmd->sc delete RabbitMQ。

(11)打开运行->regedit 找到RabbitMQ节点,删掉即可。

3、安装单机版RabbitMQ集群

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010887744/article/details/78377634

Note:单机版集群仅作为学习使用,生产环境务必使用多服务器集群。
1、配置Host节点、环境变量
127.0.0.1 node1
127.0.0.1 node2
127.0.0.1 node3
在E:\study\rabbitmq下解压2个RabbitMQ文件夹,路径分别为E:\study\rabbitmq\rabbitmq_server-3.6.12-1、E:\study\rabbitmq\rabbitmq_server-3.6.12-2。

设置环境变量:
变量名:RABBITMQ_BASE
变量值:E:\study\rabbitmq\baseconfig

2、修改rabbitmq-node1的配置文件并启动

2.1、修改rabbitmq_server-3.6.12-1\sbin\rabbitmq-env.bat,在16行加入以下配置
set RABBITMQ_CONFIG_FILE=!RABBITMQ_HOME!\etc\rabbitmq-node1
set RABBITMQ_BASE=!RABBITMQ_BASE!\rabbitmq-cluster
set RABBITMQ_NODENAME=rabbit1@node1 (建议rabbit@node1)
set RABBITMQ_NODE_PORT=5672
2.2、修改rabbitmq_server-3.6.12-1\etc\rabbitmq-node1.config,修改384行的listener
%% Change the port on which the HTTP listener listens,
%% specifying an interface for the web server to bind to.
%% Also set the listener to use SSL and provide SSL options.
%%
{listener, [{port, 15672},
{ip, "127.0.0.1"},
{ssl, false}]}
%% {ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
%% {certfile, "/path/to/cert.pem"},
%% {keyfile, "/path/to/key.pem"}]}]},
2.3、启动node1并启用插件
打开CMD命令行窗口,进入node1节点的sbin目录,
cd /d E:\study\rabbitmq\rabbitmq_server-3.6.12-1\sbin
rabbitmq-server.bat
再打开一个命令行窗口,进入sbin目录,启用插件:
rabbitmq-plugins.bat enable rabbitmq_management
2.3、检测RabbitMQ运行状态
2.3.1、执行指令:rabbitmqctl.bat status
返回结果:
Status of noderabbit1@node1
[{pid,22556},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.12"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.12"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.12"},
2.3.2、网页查看
浏览器打开localhost:15672,确认Overview的Node节点Node的名字是:rabbit1@node1,确认Overview的Node节点Paths节点的Config file值为e:/study/rabbitmq/rabbitmq_server-3.6.12-1/etc/rabbitmq-node1.config(注意后面应该没有not found才对)

 3、修改rabbitmq-node2的配置文件并加入集群
3.1、修改node2的配置并启动
修改rabbitmq_server-3.6.12-2的rabbitmq-env.bat,将node1改为node2,RABBITMQ_NODE_PORT改为5673;
修改rabbitmq-node2.config,将listener端口改为15673。
启动节点2,并启用插件。
3.2、参考2.3检测RabbitMQ运行状态
3.3、将node2节点加入集群
命令行进入E:\study\rabbitmq\rabbitmq_server-3.6.12-2\sbin,
rabbitmqctl.bat stop_app
rabbitmqctl.bat join_cluster rabbit1@node1
rabbitmqctl.bat start_app
3.4、查看集群状态
rabbitmqctl.bat cluster_status

打开任一节点管理界面,将看到集群信息。

如果想往集群中加入新节点,按照以上步骤加入node3、node4即可。

其他:
如果你不想部署多个RabbitMQ文件夹,可以参考文末链接,复制sbin的执行脚本rabbitmqctl、rabbitmq-env、rabbitmq-plugins、rabbitmq-server,并修改其中的参数。

4、RabbitMQ集群操作指令
4.1、用户指令
添加用户:rabbitmqctl add_user mq mqpwd
删除用户: rabbitmqctl delete_user username
修改密码:rabbitmqctl change_password username newpassword
列出所有用户:rabbitmqctl list_users
设置用户权限策略:rabbitmqctl set_user_tags mq administrator
角色说明
none 最小权限角色
management 管理员角色
policymaker 决策者
monitoring 监控
administrator 超级管理员

4.2、权限控制
创建虚拟主机:
# rabbitmqctl add_vhost vhostpath
删除虚拟主机:
# rabbitmqctl delete_vhost vhostpath
列出所有虚拟主机:
# rabbitmqctl list_vhosts
设置用户权限
# set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源。
RabbitMQ会缓存每个connection或channel的权限验证结果、因此权限发生变化后需要重连才能生效。
清除用户权限
# rabbitmqctl clear_permissions [-p vhostpath] username
列出虚拟主机上的所有权限
# rabbitmqctl list_permissions [-p vhostpath]
列出用户权限
# rabbitmqctl list_user_permissions username
vhost授权:rabbitmqctl set_permissions -p / mq '.*' '.*' '.*'

改变节点类型为磁盘节点:
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc/ram –更改节点为磁盘或内存节点
rabbitmqctl start_app

4.3、集群操作
rabbitmq-server:启动节点和应用;rabbitmqctl stop:应用和节点都将被关闭;
rabbitmqctl stop_app:仅仅关闭应用。

设置集群的名字:rabbitmqctl set_cluster_name my_mq_name
将节点移出集群(stop_app,然后reset节点):
rabbitmqctl stop_app
rabbitmqctl reset #从集群中移除,删除所有数据包括配置的用户等,删除持久化的消息。
force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。
注意:只有在停止RabbitMQ应用后,reset和force_reset才能成功。
RABBITMQ集群重启(集群重启时,最后一个挂掉的节点应该第一个重启):
先在一个节点上执行
#rabbitmqctl force_boot
#service rabbitmq-server start
在其他节点上执行
#service rabbitmq-server start
查看cluster状态是否正常(要在所有节点上查询)。
#rabbitmqctl cluster_status
如果有节点没加入集群,可以先退出集群,然后再重新加入集群。
上述方法不适合内存节点重启,内存节点重启时会去磁盘节点同步数据
,如果磁盘节点没起来,内存节点一直失败。

RabbitMQ的集群节点包括内存节点、磁盘节点。顾名思义内存节点就是将所有数据放在内存,磁盘节点将数据放在磁盘。如果在投递消息时,打开了消息的持久化,那么即使是内存节点,数据还是安全的放在磁盘。

参考:http://www.cnblogs.com/daryl/archive/2017/10/13/7645749.html
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值