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