RabbitMQ Java客户端:连接被拒绝
我在WSL2中运行了一个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
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容器