Failed to bind NettyServer on ,192.168.**.*——20880, cause—— Failed to bind to—— ,0.0.0.0——20880

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Failed to bind NettyServer on ,192.168.**.*——20880, cause—— Failed to bind to—— ,0.0.0.0——20880

一、概述

今天遇到的Dubbo的问题,做项目的时候,在做Dubbo的多个模块调用dubbo服务的时候遇到的问题,下面是这个问题和解决方案

二、问题异常消息


  Failed to bind NettyServer on /192.168.128.1:20880, cause: Failed to bind to: /0.0.0.0:20880  
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer(DubboProtocol.java:289)  
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.openServer(DubboProtocol.java:266)  
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.export(DubboProtocol.java:253)  
        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:55)  
        at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:56)  
        at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)  
        at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:153)  
        at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:107)  
        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:53)  
        at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)  
        at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)  
        at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:485)  
        at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:281)  
        at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:242)  
        at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:143)  
        at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)  
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)  
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)  
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)  
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)  
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:855)  
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)  
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)  
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)  
        at com.tgb.qmx.demo.dubbo.provider.Provider.main(Provider.java:8)  
    Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /192.168.56.1:20880, cause: Failed to bind to: /0.0.0.0:20880  
        at com.alibaba.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:72)  
        at com.alibaba.dubbo.remoting.transport.netty.NettyServer.<init>(NettyServer.java:63)  
        at com.alibaba.dubbo.remoting.transport.netty.NettyTransporter.bind(NettyTransporter.java:33)  
        at com.alibaba.dubbo.remoting.Transporter$Adpative.bind(Transporter$Adpative.java)  
        at com.alibaba.dubbo.remoting.Transporters.bind(Transporters.java:48)  
        at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchanger.bind(HeaderExchanger.java:41)  
        at com.alibaba.dubbo.remoting.exchange.Exchangers.bind(Exchangers.java:63)  
        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer(DubboProtocol.java:287)  
        ... 24 more  
    Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /0.0.0.0:20880  
        at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:303)  
        at com.alibaba.dubbo.remoting.transport.netty.NettyServer.doOpen(NettyServer.java:94)  
        at com.alibaba.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:67)2016-08-07 21:47:25,015 INFO [com.alibaba.dubbo.config.AbstractConfig] -  [DUBBO] Run shutdown hook now., dubbo version: 2.5.3, current host: 127.0.0.1  

   Caused by: java.net.BindException: Address already in use: bind  
        at sun.nio.ch.Net.bind0(Native Method)  
        at sun.nio.ch.Net.bind(Net.java:414)  
        at sun.nio.ch.Net.bind(Net.java:406)  
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)  
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.bind(NioServerSocketPipelineSink.java:148)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleServerSocket(NioServerSocketPipelineSink.java:100)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:74)  
        at org.jboss.netty.channel.Channels.bind(Channels.java:468)  
        at org.jboss.netty.channel.AbstractChannel.bind(AbstractChannel.java:192)  
        at org.jboss.netty.bootstrap.ServerBootstrap$Binder.channelOpen(ServerBootstrap.java:348)  
        at org.jboss.netty.channel.Channels.fireChannelOpen(Channels.java:176)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketChannel.<init>(NioServerSocketChannel.java:85)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:142)  
        at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:90)  
        at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:282)  
        ... 33 more  

其实,我们看代码的话,就可以看到,是地址别占用的问题,我们使用的端口号是20880,说明,20880端口已经被占用了。

三、解决方案

1、我们看Zookeeper的注册中心查找到了已经有提供者占用了20880端口:

这里写图片描述

因为我们每次发布一个系统,那么该系统的所有的提供者,就占用了20880端口。

2、因此,如果我们,再写一个系统,该系统的dubbo-provider中写的20880

这里写图片描述

3、这个时候,就会报上面的错误,也就是20880端口被一个系统已经占用了,因此,这个提供者的端口,就要换一个了,换一个就随便一个没有被占用的端口就可以了。 这里写图片描述

4、这样,我们运行一下provider就不会报错了。 这里写图片描述

四、总结

在有多个模块提供服务和多个模块调用服务时,每一个服务都会占用一个端口,所有,有多个模块时,每个模块的端口应该设置为不一样才可以。

原文地址:https://sihai.blog.csdn.net/article/details/80017271

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Failed to bind NettyServer on ,192.168.**.*——20880, cause—— Failed to bind to—— ,0.0.0.0——20880


 上一篇
java基础系列——集合入门 java基础系列——集合入门
集合框架:Java中的集合框架大类可分为Collection和Map;两者的区别: Collection是单列集合;Map是双列集合- Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复- Collectio
2021-04-04
下一篇 
java集合入门和深入学习,看这篇就差不多了 java集合入门和深入学习,看这篇就差不多了
一、集合入门总结集合框架:Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Collection是单列集合;Map是双列集合 2、Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复
2021-04-04