经过zuul首次访问后面的微服务接口很慢的问题

来源:6-7 jwt改造总结

小葱与奥特曼

2020-11-22

jojo老师,您好!
问题1:
我在zuul+k8s整合的时候,弃用了Eureka,使用的k8s的负载均衡;
遇到一个问题,zuul经常会出现懒加载问题,(即一段时间不访问,第一次查询就会出现慢查询5s,但是第二次以后就是正常几十ms了),尝试想改成饥饿查询,发现饥饿模式只是针对eureka的ribbon
zuul的配置

zuul:
  ribbon:
    eager-load:
      enabled: true

微服务也有同样的问题,与k8s整合,如果使用feign的方式调用,如下配置也会有超时直接熔断的情况出现,
提示com.netflix.hystrix.exception.HystrixTimeoutException: null,进入了feign的错误回退机制。

ribbon:
  eager-load:
    enabled: true
    clients: user-service

zuul调用微服务、微服务之间的调用,在使用feign的时候,
用的是k8s的service-name,service-name,这些服务名又没有被注册到zuul的ribbon上下文(微服务之间的调用也是)
该如何解决这个懒加载问题?

问题2:
如果zuul该问题解决不了,是不是我该考虑使用Spring cloud gateway来做网关,Spring cloud gateway是不是没有该问题?

问题3:
用上k8s来做负载均衡了,是不是微服务之间的调用直接使用oAuth2RestTemplate来远程调用接口,从而弃用基于ribbon的feign调用方式?老师您公司是怎么做的,没使用feign?

写回答

1回答

JoJo

2020-11-30

额...描述的问题我们没碰到过。我们转到k8s以后已经把spring cloud的组件都淘汰了。目前不建议再用zuul,问题比较多。feign不在spring环境下也可以用,我记得可以直接配置调用的域名,而不是从服务发现获取。

0
0

Spring Cloud微服务安全实战 可落地的安全方案

从API到复杂微服务场景,实战部署可落地的安全方案。

1029 学习 · 370 问题

查看课程