巨坑1: Spring cloud zuul 代理服务报错

这个巨坑断断续续的花了快一周的时间, 整个人都不好了, 必须记录一下.

Zuul 代理 请求服务;

请求服务A: OK

请求服务B: 报错; 信息如下:

2018-07-13 13:25:09.193 [http-nio-9602-exec-10] WARN  o.s.c.netflix.zuul.filters.post.SendErrorFilter - Error during filtering
com.netflix.zuul.exception.ZuulException: Forwarding error

Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: product

刚开始有点儿懵, 完全懵了, 不知道为啥, 从哪里下手; 谷歌百度也没有多少资料;

比对了服务A和B的所有配置: build.gradle依赖配置; springboot版本号, clould版本号; 配置中心, 注册中心等等配置, 一毛一样; 不一样的改到一样;

最后, 老老实实的比对启动日志:

//服务A
o.s.c.consul.serviceregistry.ConsulServiceRegistry - Registering service with consul: NewService{id='funds-local-9004', name='funds', tags=[], address='172.31.40.97', port=9004, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://172.31.40.97:9004/', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}

//服务B
o.s.c.consul.serviceregistry.ConsulServiceRegistry - Registering service with consul: NewService{id='f-product-local-9006', name='f-product', tags=[], address='172.31.40.97', port=8500, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://172.31.40.97:8500/health', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}

看了好多次,没看出毛病, 最后一比对, 发现: port=8500, 这里明显不对, 这特么不是Consul的port么, 怎么会这样!!!

唯一的区别, 服务A的配置文件是 .properties的, 服务B 是.yml的. 

换成properties的, 问题解决

what the fu********ck!

 

罪案现场:: 

// zuul dependency version: 

springBootVersion = '2.0.3.RELEASE'

ext {
	springCloudVersion = 'Finchley.RELEASE'
}

//Server A & B
ext {
		springBootVersion = '1.5.10.RELEASE'
	}

mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Edgware.SR3'

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章