RabbitMQ安装配置 - yiyixiaozhi/readingNotes GitHub Wiki

[TOC]

Ubuntu18.04安装RabbitMQ

由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang

sudo apt-get install erlang-nox

2、安装Rabbitmq 更新源

sudo apt-get update

安装

sudo apt-get install rabbitmq-server

启动、停止、重启、状态rabbitMq命令

sudo rabbitmq-server start
sudo rabbitmq-server stop
sudo rabbitmq-server restart
sudo rabbitmqctl status

添加用户, 添加yyxz,并赋予administrator权限

root@school-on-air:~# rabbitmqctl add_user  yyxz yyxz@passwd
root@school-on-air:~# rabbitmqctl set_user_tags yyxz administrator
Setting tags for user "yyxz" to [administrator]

赋予virtual host中所有资源的配置、写、读权限以便管理其中的资源

root@school-on-air:~# rabbitmqctl  set_permissions -p / yyxz '.*' '.*' '.*'
Setting permissions for user "yyxz" in vhost "/"

rabbitmq既可以命令行操作,也可以用rabbitmq自带的web管理界面,只需要启动插件便可以使用。

sudo rabbitmqctl start_app
sudo rabbitmq-plugins enable rabbitmq_management

跨域设定

在/etc/rabbitmq/rabbitmq.config文件中,加入如下内容(待验证)
[
{rabbitmq_management,
[{cors_allow_origins, ["*"]}]},
].

Websocket相关Debug需要开通:STOMP

root@school-on-air:~# rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_stomp rabbitmq_web_stomp_examples
The following plugins have been enabled:
  rabbitmq_web_stomp_examples
  sockjs
  rabbitmq_web_stomp
  rabbitmq_stomp

Applying plugin configuration to rabbit@school-on-air... started 4 plugins.

CentOS 7 安装RabbitMQ

下载入口:https://bintray.com/rabbitmq/rpm

  • 安装erlang

官方下载地址:https://bintray.com/rabbitmq-erlang/rpm/erlang

查看RabbitMQ和Erlang的版本兼容性:

https://www.rabbitmq.com/which-erlang.html

下载完成后依旧照着文档走先执行下:

https://www.rabbitmq.com/install-rpm.html

[root@bogon ~]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
[root@bogon ~]# yum install erlang-21.3.6-1.el7.x86_64.rpm
[root@bogon ~]# yum install rabbitmq-server-3.7.13-1.el7.noarch.rpm 
[root@bogon ~]# systemctl start rabbitmq-server.service
[root@bogon ~]# systemctl status rabbitmq-server.service
[root@bogon ~]# rabbitmq-plugins enable rabbitmq_management rabbitmq_web_stomp rabbitmq_stomp rabbitmq_web_stomp_examples
[root@bogon ~]# rabbitmqctl add_user  yyxz yyxz@passwd
Adding user "yyxz" ...
[root@bogon ~]# rabbitmqctl set_user_tags yyxz administrator
Setting tags for user "yyxz" to [administrator] ...
[root@bogon ~]# systemctl restart rabbitmq-server.service

配置(未验证):

cat rabbitmq-env.conf 
mkdir /usr/local/rabbitmq-server
mkdir /usr/local/rabbitmq-server/data
mkdir /usr/local/rabbitmq-server/log
chmod -R 777 /usr/local/rabbitmq-server/

开机启动

设置开机启动:systemctl enable rabbitmq-server.service
[root@bogon ~]# systemctl enable rabbitmq-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

停止开机启动:systemctl disable rabbitmq-server.service

更多RabbitMQ的配置资料可以阅读:

查看一些服务是否开机启动:

[root@bogon ~]# systemctl list-unit-files | grep rabbit
rabbitmq-server.service                       enabled 
[root@bogon ~]# systemctl list-unit-files | grep mysql
mysqld.service                                enabled 
[email protected]                               disabled

常用端口:

API端口:5672
访问管理页面:15672

无法启动问题的解决:

[root@hebeixuanyuan01 download]# journalctl -xe
Dec 05 21:28:34 hebeixuanyuan01 rabbitmqctl[29356]: * Erlang cookie hash: nfl82oV/+HVSmQcYV74GDg==
Dec 05 21:28:34 hebeixuanyuan01 systemd[1]: Failed to start RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has failed.
-- 
-- The result is failed.
Dec 05 21:28:34 hebeixuanyuan01 systemd[1]: Unit rabbitmq-server.service entered failed state.
Dec 05 21:28:34 hebeixuanyuan01 systemd[1]: rabbitmq-server.service failed.
Dec 05 21:28:34 hebeixuanyuan01 polkitd[726]: Unregistered Authentication Agent for unix-process:29155:2205491167 (system bus name :1.96097, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Dec 05 21:28:44 hebeixuanyuan01 systemd[1]: rabbitmq-server.service holdoff time over, scheduling restart.
Dec 05 21:28:44 hebeixuanyuan01 systemd[1]: Stopped RabbitMQ broker.
-- Subject: Unit rabbitmq-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has finished shutting down.
Dec 05 21:28:44 hebeixuanyuan01 systemd[1]: Starting RabbitMQ broker...
-- Subject: Unit rabbitmq-server.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit rabbitmq-server.service has begun starting up.

[root@hebeixuanyuan01 download]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie 
[root@hebeixuanyuan01 download]# chmod 600 /var/lib/rabbitmq/.erlang.cookie

然后再次启动,会报错:
* unable to connect to epmd (port 4369) on manager:    address (cannot connect to host/port)

也有可能是主机hostname配置错误,修改hosts文件中hostname设置

修改数据和日志的存放位置

  1. 新建环境变量存放文件
vi /etc/rabbitmq/rabbitmq-env.conf
内容如下:
RABBITMQ_MNESIA_BASE=/home/ftpsite/yyxz/sda1.5TB/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/home/ftpsite/yyxz/sda1.5TB/rabbitmq/log

rabbitmq-env.conf rabbitmq的环境参数配置 RABBITMQ_NODE_PORT 端口设置,默认为5672 RABBITMQ_NODENAME 节点名称,默认为rabbit MNESIA_BASE 后端存储目录,默认为/var/lib/rabbitmq/mnesia LOG_BASE 日志目录,默认为/var/log/rabbitmq/

  1. 新建目标存放文件夹,并拷贝当前文件到目标文件夹
mkdir /home/ftpsite/yyxz/sda1.5TB/rabbitmq/mnesia
mkdir /home/ftpsite/yyxz/sda1.5TB/rabbitmq/log
cp -r mnesia/ /home/ftpsite/yyxz/sda1.5TB/rabbitmq/
cp .erlang.cookie /home/ftpsite/yyxz/sda1.5TB/rabbitmq/
chown -R rabbitmq:rabbitmq /home/ftpsite/yyxz/sda1.5TB/rabbitmq/mnesia/
chown -R rabbitmq:rabbitmq /home/ftpsite/yyxz/sda1.5TB/rabbitmq/log/
chown -R rabbitmq:rabbitmq /home/ftpsite/yyxz/sda1.5TB/rabbitmq/.erlang.cookie
  1. 重启rabbitmq
systemctl restart rabbitmq-server.service

Window安装 RabbitMQ

参考:https://www.rabbitmq.com/install-windows.html

安装版本:

otp_win64_21.2.exe
rabbitmq-server-3.7.12.exe

window启动管理插件:

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12>cd sbin
## 启动插件
D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmq-plugins.bat enable rabbitmq_management
Enabling plugins on node rabbit@bianxh:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@bianxh...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
started 3 plugins.
## 添加用户并设置为管理员
D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmqctl.bat add_user yyxz yyxz@passwd
Adding user "yyxz" ...

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmqctl.bat set_user_tags yyxz administrator
Setting tags for user "yyxz" to [administrator] ...

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmqctl.bat list_users
Listing users ...
user    tags
yyxz        [administrator]
guest   [administrator]
## 添加vhost
D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmqctl.bat add_vhost dormitory
Adding vhost "dormitory" ...

D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.12\sbin>rabbitmq-plugins.bat enable rabbitmq_management rabbitmq_web_stomp rabbitmq_stomp rabbitmq_web_stomp_examples
Enabling plugins on node rabbit@bianxh:
rabbitmq_management
rabbitmq_web_stomp
rabbitmq_stomp
rabbitmq_web_stomp_examples
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_stomp
  rabbitmq_web_dispatch
  rabbitmq_web_stomp
  rabbitmq_web_stomp_examples
Applying plugin configuration to rabbit@bianxh...
The following plugins have been enabled:
  rabbitmq_stomp
  rabbitmq_web_stomp
  rabbitmq_web_stomp_examples

started 3 plugins.
⚠️ **GitHub.com Fallback** ⚠️