Spring zuul 遇到问题

problem: 支付网关服务中新增路由配置,回调网关加api怎么都无效,但是老的就没有问题?

old:

new:

answer: 

  定位:①由于网关服务有热加载功能,prd新增配置发现配置并没有被重新加载,但是之前测服和uat都验证通过,试了热加载配置也没有问题,怀疑还是环境问题。

             ②检查服务日志,发现zuul filter里面请求调用没有info日志,tomcat 的access里面却有日志,说明请求打到tomcat但是没有被转发给服务servlet,猜测有公司外部网关处理,问了一个架构组同事,说是没有再处理,线索中断。但是由于着急上线,试了回调去掉api就可以,就先上线了。

        解决:①再次找到另外一个架构同事再次确认,由于公司之前做vpc迁移,外部网关对调用这些外网访问的服务的回调进行域名解析,然后转换为vpc网段的域名(有外网网关拦截处理),然后转发到对应服务(打到tomcat access日志)。

   ②由于配置文件有两套,vpc环境和经典网络,实际生效的是vpc环境的,其他的服务都把经典网络的都砍掉了,但是这个服务(支付网关服务)还保留着,同事配置路由的时候配置到了经典网络,这里面没有匹配到路由策略(原理见ZuulHandlerMapping(AbstractUrlHandlerMapping父类).lookupHandler方法)导致info 没有日志,之前验证热加载验证的也是经典网络服务,所以验证失败。zuul直接根据eureka服务注册名找到对应服务下面访问,所以去掉api能访问。

③起作用的是vpc配置,把路由配置放到vpc配置文件,api能访问

你可能感兴趣的:(Spring zuul 遇到问题)