美文网首页
SpringCloud首次进行微服务调用时超时

SpringCloud首次进行微服务调用时超时

作者: 漩涡丶路飞 | 来源:发表于2020-08-19 11:26 被阅读0次

    这种情况可以分为两种情况

    一.被调用方的问题

    1.被调用方代码效率的问题,有可能接口真的超时了

    2.被调用方启动时没有默认启动DispatcherServlet,没有调用Servlet的init方法,所以第一次请求过来时会消耗1秒左右的时间,如果这时调用方启动了默认的断路器时间(默认1秒),这时就很容易出现超时的情况,但是后面再次调用就不会有这种情况了。

    解决方案,修改DispatcherServlet的初始化时间,spring.mvc.servlet.load-on-startup默认为-1,设置为0或正整数即可

    spring.mvc.servlet.load-on-startup=1

    二.调用方的问题

    调用方调用其他服务的时候可能还没有加载client,在首次调用时会消耗一定的时间,可以通过下面配置来在启动时初始化这个配置

    解决方案,添加配置

     # 饥饿加载,避免刚启动第一次请求超时

    ribbon.eager-load.enabled=true

     # 初始化的client列表

    ribbon.eager-load.clients=aaa

    另外还需要添加一下短路器的超时时间

    #断路器超时时间,默认1000ms

    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000

    相关文章

      网友评论

          本文标题:SpringCloud首次进行微服务调用时超时

          本文链接:https://www.haomeiwen.com/subject/dqerjktx.html