应用不能远程访问RabbitMQ的5672端口

目录

1.背景

2.环境

3.步骤

1)添加用户

2)设置权限

3)停止服务

4)修改配置

5)启动rabbitmq的服务

6)应用配置

4.参考文档


1.背景

在使用SpringBoot开发的应用中,使用到RabbitMQ,需要通过5672端口访问,但启动就报类似socket closed这样的错误。后来网上找了资料,发现是由于该端口默认不支持远程连接导致。

因此这里,记录一下解决该问题的过程,为同样遇到问题的“道友”提供思路。

2.环境

SpringBoot:2.2.2.RELEASE

RabbitMQ:rabbitmq-server-3.7.14

3.步骤

1)添加用户

由于RabbitMQ默认的guest用户不支持远程访问,这里新增加一个用户:admin。

方式一:网页上添加用户

A. 进入http://localhost:15672,登录:guest/ guest;

B. 点击tab,切换到“Admin”;

C.在“Add user”下方的输入框中添加用户名和密码,这里为admin/ admin,点击按钮“Add user”。

应用不能远程访问RabbitMQ的5672端口_第1张图片

2)设置权限

A.添加成功后,上方列表中出现该记录,点击列表Name中的“admin”,修改权限;

B.如下图所示权限设定后,点击 Set permission。

应用不能远程访问RabbitMQ的5672端口_第2张图片

方法二:命令行

# rabbitmqctl add_user admin admin
# rabbitmqctl set_user_tags csh administrator
# rabbitmqctl set_permissions -p / csh “.” “.” “.*”

3)停止服务

停止rabbitmq的所有服务(windows为例,在rabbitmq的安装目录bin目录下执行):

rabbitmq-service stop

4)修改配置

A.配置文件: <安装目录>\RabbitMQ Server\rabbitmq_server_3.7.14\etc\rabbitmq.config.example

B.去掉注释符号%%,增加用户:

%% ... 
{tcp_listeners, [5672]},
{loopback_users, ["admin"]},
...

5)启动rabbitmq的服务

rabbitmq-service start

6)应用配置

SpringBoot应用中,application.yml文件中的配置

spring:
  application:
    ...
  
  rabbitmq:
    host: xxx.xxx.xxx.xxx   # rabbitmq server所在的主机IP
    port: 5672
    username: admin        # 前面步骤中创建的用户名
    password: admin        # 前面步骤中创建的密码

4.参考文档

https://blog.csdn.net/fanyuna/article/details/48680553

https://blog.csdn.net/u011642663/article/details/54691733

你可能感兴趣的:(rabbitmq,5672,远程访问)