作者:香港冫耐思得 | 来源:互联网 | 2023-09-02 09:12
场景:数据量大,打开zipkin页面有时候报错,打不开。加载页面过慢,因为span数据太多。原因:使用spring-cloud-sleuth后,feign访问Controller后
场景:
数据量大,打开zipkin页面有时候报错,打不开。
加载页面过慢,因为span数据太多。
![](https://img1.php1.cn/3cd4a/24c6f/78c/9cad340d2a24a6ef.png)
![](https://img1.php1.cn/3cd4a/24c6f/78c/d1e534e49be66dba.png)
原因:使用spring-cloud-sleuth后,feign 访问Controller后得span得名字
当使用restful风格后,span的名字就图像如上。
触发此事件的场景:
1.浏览器直接调用
![](https://img1.php1.cn/3cd4a/24c6f/78c/bcc946ea63497cd4.png)
解决:修改spring sleuth Controller 的 源码:
org.springframework.cloud.sleuth.instrument.web.client.AbstractTraceHttpRequestInterceptor.publishStartEvent(HttpRequest)
![](https://img1.php1.cn/3cd4a/24c6f/78c/1aaae986a132da7c.png)
2.服务之间调用(feign)
解决:修改spring feign sleuth 源码:
org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClient.execute(Request, Options)
org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClient.getSpanName(Request)
![](https://img1.php1.cn/3cd4a/24c6f/78c/23fa9ec7d5f010ce.png)
3.服务之间调用(java网关,gateway(默认根据http 类型,不会有问题),zuul)
解决:修改zuul 源码:
org.springframework.cloud.sleuth.instrument.zuul.TracePreZuulFilter.runFilter()
![](https://img1.php1.cn/3cd4a/24c6f/78c/d80b08dc704add10.png)
4.或者不要用restful风格调用
相关源码文件:
![](https://img1.php1.cn/3cd4a/24c6f/78c/1bbd417304ab30e1.png)