盒子
盒子
文章目录
  1. 说两句
  2. 提前说两句
  3. CentOS 下安装
  4. 基本命令
  5. 访问 web 管理页面
  6. 其他
  7. 整合 springboot
  8. 参考

rabbitMq 基本操作

说两句

提前说两句

使用消息队列做了注册发送邮件的逻辑

之前做的秒杀系统也用 RabbitMQ 重写了一下秒杀逻辑…

简单秒杀系统

CentOS 下安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# centos

# 先安装 erlang
yum -y install erlang

# 下载 RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm
# 安装
yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm

# 缺少啥依赖,相应安装即可

# 比如 提示缺少 erlang-solutions
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
安装 rpm 仓库: rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

基本命令

1
2
3
4
5
6
7
8
9
10
11
# 启动
service rabbitmq-server start
# 状态
service rabbitmq-server status

# 自启
$ chkconfig rabbitmq-server on

# 启动 web 管理插件
rabbitmq-plugins enable rabbitmq-management
# 访问 ip:15672 就可以通过 web 页面管理 RabbitMQ 了

访问 web 管理页面

访问 ip:15672 就可以通过 web 页面管理 RabbitMQ 了

见到是一个登录页面.

RabbitMQ 提供了默认用户名和密码

username : guest

password : guest

但是该用户名与密码只能在本机登录,不支持远程访问.

新建一个用户,并设定权限,就可以使用这个新用户远程访问了.

先看看基本操作.

1
2
3
4
5
6
7
8
9
10
11
12
13
# 删除用户
rabbitmqctl delete_user Username

# 新增一个用户
rabbitmqctl add_user Username Password

# 修改用户的密码
rabbitmqctl change_password Username Newpassword

# 设定用户 administrator 角色
rabbitmqctl set_user_tags <用户名> administrator

# 用户角色可以分为超级管理员administrator、监控者monitoring、策略制定者policymaker、普通管理者management等。

比如我就这样操作一番 :

1
2
3
4
5
6
7
8
9
10
11
12
13
# 删除用户
rabbitmqctl delete_user Username

# 新增一个用户
rabbitmqctl add_user Username Password

# 修改用户的密码
rabbitmqctl change_password Username Newpassword

# 设定用户 administrator 角色
$ rabbitmqctl set_user_tags <用户名> administrator

# 用户角色可以分为超级管理员administrator、监控者monitoring、策略制定者policymaker、普通管理者management等。

这样创建一个用户并配置角色确实可以在 web 管理界面登录,但是配置 Springboot 时,还不能连接访问.

我报了这样的错.

1
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'hqweay', class-id=10, method-id=40)

还需要对用户配置权限.

1
2
3
sudo rabbitmqctl  set_permissions -p / hqweay '.*' '.*' '.*'
# 该命令使用户 hqweay 具有‘/’这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
# 具体是啥意思还得稍微了解下 RabbitMQ 的相关配置

其他

配置了 web 插件不能访问,配置防火墙之类的…

不提

整合 springboot

配置访问端口是 5672

web 访问端口是 15672

不提引入与具体编码,看看配置.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# application.yml
server:
port: 8082

spring:
application:
name: rabbitMQ
rabbitmq:
# 配置连接IP地址,本机安装的 RabbitMQ 的话可以用 localhost
host: 118.24.xxx.xxx
# 这里配置的是 RabbitMQ 的连接端口,是 5672 哦不是 15672
port: 5672
username: hqweay
password: xxx

info:
app:
name: RabbitMQ测试连接
version: 0.0.1

可以参考这个仓库的整合

参考

centos rabbitMq 安装

SpringBoot使用RabbitMQ做消息中间件

Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ