RabbitMq安装部署指南

## RabbitMq的安装

【服务器系统版本】
```
Linux version 3.10.0-1062.18.1.el7.x86_64

RabbitMq的最新版本,适用el8、el9的系统。不适用el7

因此我们最终确定版本:RabbitMq 3.10,Erlang 23.3。

RabbitMq与erlang对应版本参考下面链接:
https://www.rabbitmq.com/which-erlang.html

```


【RabbitMq版本】
```
RabbitMq的发布版是: 3.10.0
Erlang:23.3.4.10。
```

【RabbitMq发布版维护的时间线】


| 版本号 | 补丁版本  | 第一次发布时间 | 维护结束时间 | 持续时间 |
| --- | --- | --- | --- | --- |
| 3.11 | 3.11.10 | 2022-09-28 | -- | -- |
| 3.10 | 3.10.19 | 2022-05-03 | 2023-07-31 | 19个月(包含商业特性) |
| 3.9 | 3.9.28 | 2021-07-26 | 2023-01-31 | 24个月(包含商业特性) |
| 3.8 | 3.8.35 | 2019-10-01 | 2022-07-31 | 34个月 |
| 3.7 | 3.7.28 | 2017-11-28 | 2020-09-30 | 34个月 |
| ... |.... | ... | .. | .. |

```
时间线:https://www.rabbitmq.com/versions.html
```

【安装Erlang】

```
运行RabbitMq的最小化安装方式:

首先运行脚本,设置yum仓库:
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

然后进行安装:
sudo yum install erlang-23.3.4.10-1.el7.x86_64

```

【安装RabbitMq】
```
在Fedora和RHEL仓库里包含rabbitmq,但是仓库里包含的版本可能会落后最新版本
很多,甚至肯能还会提供官方不在支持的版本。

官方推荐的安装方式: 在Cloudsmith.io 或 PackageCloud使用yum仓库

我们采用PackageCloud仓库进行安装,安装过程如下:

使用Package Cloud提供的脚本,来快速的设置仓库:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

-- 直接执行下面的命令安装
sudo yum install rabbitmq-server-3.10.0-1.el7.noarch

```

【RabbitMq官方配置脚本】

```
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

这两个仓库的配置脚本执行完成后,在路径:/etc/yum.repos.d,你会看到相应的
配置文件:
rabbitmq_erlang.repo
rabbitmq_rabbitmq-server.repo

```

【配置rabbitmq开机启动】

```
RabbitMq默认不是以守护进程的方式启动,如果当系统启动的时候,想要RabbitMq
以守护进程的方式启动,使用管理员账号执行下面命令:
chkconfig rabbitmq-server on
```

【启动|停止RabbitMq】

```
service rabbitmq-server start

service rabbitmq-server status

service rabbitmq-server stop
```

【如果service 工具没有安装,执行下面命令】

```
yum -y install initscripts
```

【RabbitMq端口】

```
5534--用来监听客户端链接。默认端口是:5672

15534--RabbitMq管理插件占用端口(用来管理rabbitmq,已经查看关键的性能指
标)。默认端口是:15672
```

【服务器的开通端口】
```
服务器地址:47.104.196.10

开通端口:5534,15534

5534--用于客户端链接
15534--rabbitmq管理插件占用端口(用来管理rabbitmq,已经查看关键的性能指
标)
```

【RabbitMq默认路径】
![rabbitmq_def_path.jpg](https://note.youdao.com/yws/res/7017/WEBRESOURCE29af7514f457c3750df7fe080a04bbf3)

```
配置文件路径:/etc/rabbitmq/rabbitmq.conf,/etc/rabbitmq/advanced.config
日志路径: /var/log/rabbitmq/[email protected]


node           : rabbit@ziyuan
home dir       : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/advanced.config
               : /etc/rabbitmq/rabbitmq.conf
cookie hash    : kCKvp150FOiNIHZAKhFgdg==
log(s)         : /var/log/rabbitmq/[email protected]
               : /var/log/rabbitmq/rabbit@ziyuan_upgrade.log
               :
database dir   : /var/lib/rabbitmq/mnesia/rabbit@ziyuan
```

【启用ManagementUi】

```
rabbitmq-plugins enable rabbitmq_management

管理插件的登录页面:
http://47.104.196.10:15534/

默认用户:guest,密码:guest。这个用户只能进行登录。

我们需要删除这个用户,同时创建新的用户(使用HttpApi)。

```
【创建新用户】

```
参考api文档连接:
http://47.104.196.10:15534/api/index.html

1. 创建新用户
curl -i -u guest:guest -H "content-type:application/json" \
     -XPUT -d'{"password":"qwe123!@#","tags":"administrator"}' \
     http://localhost:15534/api/users/scm


2. 使用scm账号登录


使用命令行对用户进行操作:

创建用户:
rabbitmqctl add_user 'username' '2a55f70a841f18b97c3a7db939b7adc9e34a0f1b'

查询用户:
rabbitmqctl list_users

删除用户
rabbitmqctl delete_user 'username'

为用户授权:
rabbitmqctl set_permissions -p "custom-vhost" "username" ".*" ".*" ".*"

清空权限:
rabbitmqctl clear_permissions -p "custom-vhost" "username"


```
【删除用户】

```
如果用户创建不正确,可以使用api接口进行用户删除。
1. 删除用户
curl -i -u guest:guest -H "content-type:application/json" \
     -XPOST -d'{"users":["scm"]}' \
     http://localhost:15534/api/users/bulk-delete

```

【RabbitMq元数据导入和导出】

```
元数据被存储在内部的数据库,并且横跨集群所有的节点进行复制。

1. 将原数据导出json文件。

1)如果没用启用管理插件,使用命令行工具导出
rabbitmqctl export_definitions

2)GET /api/definitions

3)rabbitmqadmin export

示例:
rabbitmqctl export_definitions /path/to/definitions.file.json

rabbitmqadmin export /path/to/definitions.file.json

curl -u {username}:{password} -X GET http://{hostname}:15672/api/definitions


2.元数据导入
rabbitmqctl import_definitions /path/to/definitions.file.json

rabbitmqadmin import /path/to/definitions.file.json
```

【生产环境需要关注配置项】

```
1. Virtual Hosts
在多租户环境种,为每个租户使用单独的vhost ,例如:tenant/environment

2.用户
为每个应用创建一个用户,删除默认用户guest

3.内存,默认当rabbitmq使用内存超过40%时,rabbitmq将不再接收消息
vm_memory_high_watermark.relative = 0.4
这个配置项的范围,官方推荐是:0.4-0.7

4.磁盘空间,生产环境建议设置1.5
disk_free_limit.relative = 1.5
如果你的内存是4GB,那么当磁盘可用空间不足6GB时,新消息将被阻塞

5.打开文件句柄的最大数量,系统默认为1024,推荐设置为65536,(官方推荐至
少大于5万)

6.日志收集
```


 

你可能感兴趣的:(rabbitmq)