使用 Solon Cloud 的 Jaeger 做请求链路跟踪
<dependency>
<groupId>org.noear</groupId>
<artifactId>jaeger-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 jaeger 适配的 solon cloud 插件。基于 opentracing 开放接口提供链路跟踪支持。
2、配置示例
solon.app:
name: "demoapp"
group: "demo"
solon.cloud.jaeger:
server: "udp://localhost:6831"
trace:
enable: true #是否启用(默认:true)
exclude: "/healthz,/_run/check/" #排除路径,多个以,号隔开
3、代码应用
- 启用和配置跟踪器实现
public class App {
public static void main(String[] args) {
Solon.start(App.class, args);
}
}
//相对于 opentracing-solon-plugin,省去了 Tracer 的构建 和 jaeger 客户端的引入
- 应用代码
// -- 可以当它不存在得用
@Controller
public class TestController {
@NamiClient
UserService userService;
@Inject
OrderService orderService;
@Mapping("/")
public String hello(String name) {
name = userService.getUser(name);
return orderService.orderCreate(name, "1");
}
}
//-- 通过注解增加业务链节点 ( @Tracing )
@ProxyComponent
public class OrderService {
@Tracing(name = "创建订单", tags = "订单=${orderId}")
public String orderCreate(String userName, String orderId) {
//手动添加 tag
Spans.active(span -> span.setTag("用户", userName));
return orderId;
}
}
4、@Tracking 注意事项
控制器或最终转为 Handler 的类可以不加(已由 Filter 全局处理了),加了会产生新的 Span
修改当前 Span 的操作名
@Controller
public class TestController {
@Mapping("/")
public String hello(String name) {
Spans.active().setOperationName("Hello"); //修改当前操作名
return "Hello " + name;
}
}
- 添加在空接口上,一般会无效(比如:Mapper)。除非其底层有适配
- 需加在代理的类上,不然拦截器不会生效。如:@ProxyComponent 注解的类
5、演示效果

6、代码演示
- 源码:https://gitee.com/noear/solon-examples/tree/main/9.Solon-Cloud/demo9072-jaeger
- 视频:https://www.bilibili.com/video/BV1E24y1j7w3/
使用 Solon Cloud 的 Jaeger 做请求链路跟踪的更多相关文章
- SpringCloud(八)Sleuth 分布式请求链路跟踪
SpringCloud Sleuth 分布式请求链路跟踪 概述 为什么会出现这个技术?需要解决哪些问题? 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后 ...
- Spring Cloud 微服务架构全链路实践
阅读目录: 1. 网关请求流程 2. Eureka 服务治理 3. Config 配置中心 4. Hystrix 监控 5. 服务调用链路 6. ELK 日志链路 7. 统一格式返回 Java 微服务 ...
- 【spring cloud】spring cloud Sleuth 和Zipkin 进行分布式链路跟踪
spring cloud 分布式微服务架构下,所有请求都去找网关,对外返回也是统一的结果,或者成功,或者失败. 但是如果失败,那分布式系统之间的服务调用可能非常复杂,那么要定位到发生错误的具体位置,就 ...
- go-zero 是如何追踪你的请求链路的
go-zero 是如何追踪你的请求链路 微服务架构中,调用链可能很漫长,从 http 到 rpc ,又从 rpc 到 http .而开发者想了解每个环节的调用情况及性能,最佳方案就是 全链路跟踪. 追 ...
- Jaeger Client Go 链路追踪|入门详解
目录 从何说起 Jaeger 部署 Jaeger 从示例了解 Jaeger Client Go 了解 trace.span tracer 配置 Sampler 配置 Reporter 配置 分布式系统 ...
- Solon Cloud 分布式开发套件清单与快速概览
Solon Cloud 是一系列的接口标准和配置规范.Solon Cloud 为常见的分布式系统模式提供了一种简单且方便的编程模式,帮助开发人员构建有弹性的.可靠的.协调的应用程序.Solon Clo ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...
- Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架
Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...
- Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】
Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] 发表于 2018-04-24 | 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请 ...
- Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth
1. 概述 Spring Cloud Sleuth实现对Spring cloud 分布式链路监控 本文介绍了和Sleuth相关的内容,主要内容如下: Spring Cloud Sleuth中的重要术语 ...
随机推荐
- OPENSUSE网速慢
无线网卡是Broadcom 4313,刚安装完opensuse,网速只有60Kb左右. 添加packman私有驱动后,网速才正常起来.
- hdu1710 二叉树(C/C++)
hdu1710 题目地址:https://acm.dingbacode.com/showproblem.php?pid=1710 (最近几天杭电原网址开不进去了,之后应该可以通..吧) Binary ...
- 利用python-pptx包批量修改ppt格式
最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置.对齐方式.字体等统一,人工修改又麻烦又容易错. 因此结合网上的pptx包资料,使用python脚本完成处理. 主要的坑点在于,shape ...
- Codeforces Round #843 (Div. 2) Problem C
C. Interesting Sequence time limit per test 1 second memory limit per test 256 megabytes input stand ...
- list tuple dic set的区别
list是可变的(可以在list里边添加删除替换内容) 声明时用[ ] tuple和list非常类似,但是tuple一旦初始化就不能修改 ,声明时用() classmates = ('Michael ...
- 学习 vue框架
new watch 监听值的变化 watch: { "input1": { handler(newName, old ...
- 09 Hive安装与操作
一.安装Hive 下载解压重命名权限 配置环境变量 修改Hive配置文件 修改/usr/local/hive/conf下的hive-site.xml 1 2 3 4 5 6 7 8 9 10 11 1 ...
- 洛谷 P2105 K皇后 题解
START: 2021-08-06 16:34:44 题目链接: https://www.luogu.com.cn/problem/P2105 题目详情: 小 Z 最近捡到了一个棋盘,他想在棋盘上摆放 ...
- CF 1272 D. Remove One Element
D. Remove One Element time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- java的内存模型,jmm理解和(GC)垃圾回收时机。
jmm模型中的gc处理是在堆中回收. 1.新对象出来以后,先尝试在eden中放下,放不下的时候,进行一次ygc,只会在eden中回收,