共计 1010 个字符,预计需要花费 3 分钟才能阅读完成。
随着微服务流行,很多公司都把零碎依照业务边界拆成了很多微服务。因而业务链路贯通着很多微服务节点,导致定位某个申请的日志以及上下游业务的日志会变得十分艰难。
为了解决这一痛点,业界也有诸多成熟计划。如 SkyWalking,Pinpoint 等,但其运维老本和数据存储老本均不可小觑。如果有相应的资源去做那它们天然是不二之选。但如果你资源无限,那么这里给出一个十分轻量的通过集成 TLog 来解决日志追踪问题的计划。
TLog 是什么?
TLog 提供了一种最简略的形式来解决日志追踪问题,它不收集日志,也不须要另外的存储空间,它只是主动的对你的日志进行打标签,主动生成 TraceId 贯通你微服务的一整条链路中。并且提供上下游节点信息。
集成 TLog
盘古开发框架已将 TLog 作为缺省规范组件集成进盘古根底模块:pangu-spring-boot-starter
。
如何应用
第一步:依赖盘古根底模块
<dependency>
<groupId>com.gitee.pulanos.pangu</groupId>
<artifactId>pangu-spring-boot-starter</artifactId>
</dependency>
第二步:启动类调用日志加强办法
static {AspectLogEnhance.enhance();
}
第三步:别离结构盘古消费者微服务和生产者微服务
参见如下盘古范例模块。获取代码
- pangu-examples-dubbo-service 服务生产者
- pangu-examples-webapi-dubbo-service-based 服务消费者
查看日志输入成果
咱们在一个 Dubbo 服务消费者和一个 Dubbo 服务生产者利用中别离做如上配置后,就能够在每个调用链的日志里看到 TLog 自定嵌入的 TraceId 标签值 10812814178142336
。如下所示。
生产端:2022-06-23 14:40:50 INFO 47050 - [nio-8080-exec-1] c.x.DemoController : < 0 >< 10812814178142336 > call case1...
生产端:2022-06-23 14:40:50 INFO 46395 - [:20881-thread-4] c.x.UserServiceImpl : < 0.1 >< 10812814178142336 > 参数 userIn:UserInDto(name=null, userType=1)
正文完