A服务调用B服务,第一次调用时返回数据特别慢大概需要1到2秒,为什么这么慢,如何解决?
哪里比较浪费时间呢????能说的详细点吗
请把问题说详细些, 或者自行使用spring cloud的组件 zipkin进行耗时定位,然后根据具体耗时的地方进行优化
a和b建立连接耗费了很长时间
---- 是不是两个服务之间的网络有抖动等,导致网络耗时变长。看描述,B方法本身耗时只有几十毫秒。
抓包看下,第一次访问慢,有可能是你dns解析比较慢,这种情况可以设置本地dns静态解析
还有就是服务器那里比较慢,这种情况可以在你网站启动的时候预连一次,并且定时keep alive保持会话防止服务器停止回收,来隐藏延迟。
ribbon的负载均衡默认懒加载, 第一次调用会比较慢, 配置成启动就加载就OK了
第一次慢你问题说不定是Springboot本身的问题,服务需要预热的 建议搜索 Java 服务 预热
因为你在调用服务的时候可能使用的是同步线程,而同步线程最主要的特点是,依次执行,就比如说你的服务同时执行多个接口的时候它会一个一个去执行,这样的话你的执行时间就是多个调用接口的时间总和