项目结构:
出问题的是fission服务
问题复现:
我们在本地复现一下问题,先把涉及的应用启动好
现在干掉fission的一个节点
等待大约20秒后,此时走zuul网关应用来调30次fission的接口
上方图片出现了部分请求500的情况,zuul网关项目这边报的是转发错误
问题解决:
eureka.client.registry-fetch-interval-seconds=3
表示eureka client间隔多久去拉取服务注册信息,默认为30秒,对于消费端应用,如果要迅速获取服务注册状态,可以缩小该值,比如3秒
做了以上配置后,干掉fission的一个节点,等待20秒后,30次全部转发成功了。
埋坑:
registry-fetch-interval-seconds配置为3秒后依然需要等待20秒后才不会有转发失败的问题,这个问题依旧需要探索,20秒的沉默成本还是太大了。