分布式项目,dubbo配置问题导致的报错。java.net.BindException: Address already in use: bind

taotao-sso-web报错: Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.taotao.sso.service.UserRegisterService com.taotao.sso.controller.UserController.userRegisterService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRegisterService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.taotao.sso.service.UserRegisterService. No provider available for the service com.taotao.sso.service.UserRegisterService from the url zookeeper://192.168.25.128:2181/com.alibaba.dubbo.registry.RegistryService?application=taotao-sso-web&dubbo=2.5.3&interface=com.taotao.sso.service.UserRegisterService&methods=check,register&pid=2540&revision=0.0.1-SNAPSHOT&side=consumer&timeout=300000&timestamp=1568080747104 to the consumer 192.168.136.1 use dubbo version 2.5.3

taotao-sso-service报错:Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /192.168.136.1:20880, cause: Failed to bind to: /0.0.0.0:20880
Caused by: java.net.BindException: Address already in use: bind
 

 

场景:taotao-sso-web工程启动的时候,依赖taotao-sso-service的UserRegisterService,启动的时候报错。

认识下,DUBBO是一个分布式服务框架,是阿里巴巴SOA服务化治理方案的核心框架。简单来说就是资源调度和治理中心的管理工具。
zookeeper:注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。使用dubbo-2.3.3以上版本,官方建议使用zookeeper作为注册中心。

看一下taotao-sso-service的  dubbo 配置

<!-- 使用dubbo发布服务 -->
	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:application name="taotao-manager" />
	<dubbo:registry protocol="zookeeper" address="192.168.25.128:2181" />
	<!-- 用dubbo协议在20880端口暴露服务 -->
	<dubbo:protocol name="dubbo" port="20880" />
	<!-- 声明需要暴露的服务接口 -->
	<dubbo:service interface="com.taotao.sso.service.UserRegisterService" ref="userRegisterServiceImpl" timeout="3000000"/>
	<dubbo:service interface="com.taotao.sso.service.UserLoginService" ref="userLoginServiceImpl" timeout="3000000"/>

原因:  <dubbo:protocol name="dubbo" port="20880" />,暴露的20880端口另一个工程taotao-manager-service的端口相同,所以会出现taotao-sso-web在dubbo的zookeeper注册中心找不到UserRegisterService服务的情况,因为此时aotao-manager-service根本就没启动成功。

规范纠正:<dubbo:application name="taotao-manager" /> 该名称taotao-manager与另一个工程taotao-manager-service的名称相同,这样dubbo监控就不能正确的统计,所以建议改成 taotao-sso。

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值