Spring Cloud Config+k8s节点漂移带来的问题

spring cloud版本为<version>Edgware.SR3</version> ,并且部署了spring-boot-admin-server

相关服务每隔20秒左右会出现:

2019-04-18 09:26:56.919  INFO [zbcloud-server-gateway,330af47ba126aca5,330af47ba126aca5,false] 1 --- [nio-8763-exec-4] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://172.20.4.51:8762/
2019-04-18 09:26:59.926  WARN [zbcloud-server-gateway,330af47ba126aca5,330af47ba126aca5,false] 1 --- [nio-8763-exec-4] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://172.20.4.51:8762/zbcloud-server-gateway/default": Host is unreachable (Host unreachable); nested exception is java.net.NoRouteToHostException: Host is unreachable (Host unreachable)

经查询时由于spring-boot-admin-server触发了健康检查,而Spring-Cloud-Config-server由于重启等原因pod的IP发生了变更,真正去访问的地址是直接从 properties.getRawUri()获取的,它已经是一个固化的值,而不是通过服务发现机制来动态获取的,从而导致无法请求配置中心。

解决方案:

    部署在机器上而不是容器上,避免IP的变动 可以考虑关闭微服务队config客户端的健康检查,增加参数 health.config.enabled=false;但是这个操作有一个弊端,虽然迁移不会引发服务时好时坏的问题了,但是如果有动态配置刷新需求,如果迁移了配置中心,刷新配置操作也是会失败的。
spring cloud版本为 Edgware.SR3 ,并且部署了spring-boot-admin-server 相关服务每隔20秒左右会出现: 2019-04-18 09:26:56.919 INFO [zbcloud-server-gateway,330af47ba126aca5,330af47ba126aca5,false] 1 --- [nio-8763-exec-4] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://172.20.4.51:8762/ 2019-04-18 09:26:59.926 WARN [zbcloud-server-gateway,330af47ba126aca5,330af47ba126aca5,false] 1 --- [nio-8763-exec-4] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://172.20.4.51:8762/zbcloud-server-gateway/default": Host is unreachable (Host unreachable); nested exception is java.net.NoRouteToHostException: Host is unreachable (Host unreachable) 经查询时由于spring-boot-admin-server触发了健康检查,而Spring-Cloud-Config-server由于重启等原因pod的IP发生了变更,真正去访问的地址是直接从 properties.getRawUri()获取的,它已经是一个固化的值,而不是通过服务发现机制来动态获取的,从而导致无法请求配置中心。 解决方案: 部署在机器上而不是容器上,避免IP的变动 可以考虑关闭微服务队config客户端的健康检查,增加参数 health.config.enabled=false;但是这个操作有一个弊端,虽然迁移不会引发服务时好时坏的问题了,但是如果有动态配置刷新需求,如果迁移了配置中心,刷新配置操作也是会失败的。
经验分享 程序员 微信小程序 职场和发展