栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java.net.UnknownHostException异常

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java.net.UnknownHostException异常

一、在eureka注册中心里使用feign远程调用时出现java.net.UnknownHostException异常
java.net.UnknownHostException(主机未知异常)(PS:因为使用nacos调用服务时候不会出现这种问题)

@FeignClient(name = "springcloud-eureka-provider",configuration = FeignLoggerConfig.class,fallback = ProviderFeignClientFallBack.class)
	public interface ProviderFeignClient {
	    @GetMapping("/provider/getResult/{id}")
	    Result getResult(@PathVariable int id);
	}

运行时出现以下异常
java.net.UnknownHostException: springcloud-eureka-provider	
(异常详细信息如后图)

//如果注册中心中设置的hostname域名不可用,可以通过以下任一方法解决:
		a)删除hostname属性,设置偏好ip:prefer-ip-address: true
		b)在此接口上@FeignClient注解中设置url = "http://127.0.0.1:8000"
//url设置调用服务的全路径,一般用于本地测试(eureka与nacos不同,只设置name会报:java.net.UnknownHostException: springcloud-eureka-provider)
@FeignClient(url = "http://127.0.0.1:8001",name = "springcloud-eureka-provider",configuration = FeignLoggerConfig.class,fallback = ProviderFeignClientFallBack.class)

**解决方式:在/@FeignClient注解中增添url参数解决,或者删除服务提供者application.yml文件注册中心设置的hostname属性,修改IP偏好设置 prefer-ip-address: true

二、使用静态路由转换成动态路由时出现java.net.UnknownHostException异常
spring:
  application:
	 name: springcloud-gateway-server
  cloud:
    gateway:
      routes:
        #id 唯一标识
        - id: gateway-provider
        
          #uri 转发路径  #静态路由
       	  uri: http://127.0.0.1:8001
       	  
    	  #uri 转发路径  #动态路由
          uri: lb://SPRINGCLOUD-EUREKA-PROVIDER
          
          #predicates 用来请求网关路径的匹配规则
          predicates:
            - Path=/provider/**
                  
        - id: gateway-consumer
          uri: http://127.0.0.1:8002
          predicates:
            - Path=/consumer/**

解决方式:
删除服务提供者application.yml文件注册中心设置的hostname属性,修改IP偏好设置 prefer-ip-address: true ,或者在C:WindowsSystem32driversetchosts文件中添加

127.0.0.1 springcloud-eureka-provider 

在Eureka中使用@FeignClient未使用url属性时发生:

在配置文件中使用lb://xxx 动态路由时发生:

修改本机hosts文件:

总结:

在单机开发阶段,
如果出现UnknownHostException异常:
	1、如果注册中心是eureka,检查FeignClient的url属性
	2、如果不存在上述问题,检查是否由动态路由设置时造成
	3、检查eureka配置文件中的hostname属性(ip地址或域名)
	以上两种问题均可通过在本地hosts文件中修改ip 对应的域名解决,在开发过程中不建议使用域名,注册中心中hostname使用本机ip即可,(在正式测试、生产环境下修改成服务器对应的域名即可);

@FeignClient中name和url的作用和区别:
如果同时指定name和url属性: 则以url属性为准,name属性指定的值便当做客户端的名称

相关的资料:
原博:https://blog.csdn.net/qq_40891009/article/details/103390079

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号