RabbitMQ Java客户端:连接被拒绝

RabbitMQ Java客户端:连接被拒绝,java,docker,rabbitmq,windows-subsystem-for-linux,wsl-2,Java,Docker,Rabbitmq,Windows Subsystem For Linux,Wsl 2,我在WSL2中运行了一个rabbitmq:managementdocker映像 请注意,我没有安装Docker Desktop!我在WSL2内部运行docker,而不运行docker Desktop 我可以访问localhost:15672、127.0.0.1:15672和[::1]:15672,以无任何问题地访问管理界面,因此从我的浏览器到WSL2中的docker服务的主要连接正在工作 但是,当尝试连接RabbitMQ Java客户机库时,我总是会遇到连接被拒绝错误: 试试看{ var por

我在WSL2中运行了一个
rabbitmq:management
docker映像

请注意,我没有安装Docker Desktop!我在WSL2内部运行docker,而不运行docker Desktop

我可以访问
localhost:15672
127.0.0.1:15672
[::1]:15672
,以无任何问题地访问管理界面,因此从我的浏览器到WSL2中的docker服务的主要连接正在工作

但是,当尝试连接RabbitMQ Java客户机库时,我总是会遇到
连接被拒绝
错误:

试试看{
var port=Env.get(envars.EVENTING_port,“5672”);
var host=Env.get(EnvVars.EVENTING_host,“localhost”);
var factory=新连接工厂();
setHost(主机);
setPort(Integer.parseInt(port));
LOG.info(“在[{}:{}]上连接”,主机,端口);
connection=factory.newConnection();
}捕获(异常exc){
日志错误(“无法连接”,exc);
}
异常来自
java.net
,因此它一定是某种网络错误

但是:我也在运行同一个WSL2 docker中的redis,我可以通过
localhost:6937
连接到它,没有任何问题

CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                                                        NAMES
47a58db1aa67   rabbitmq:management   "docker-entrypoint.s…"   18 minutes ago   Up 18 minutes   4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, :::15671-15672->15671-15672/tcp   1264-services_rmq_1
8a792b0d0121   redis:4               "docker-entrypoint.s…"   18 minutes ago   Up 18 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                                                                    1264-services_redis_1

如何对此进行故障排除以使从java客户端库到rabbitmq的连接按预期工作?

您的rabbitmq管理层正在侦听VM上localhost上的5672,而只是在容器中侦听。要解决此问题,请使用选项
-p 5671-5672:5671-5672运行rabbitmq容器