-
分布式链路追踪-04-全链路日志追踪 http、dubbo、mq
目的
目前许多系统项目之间的调用,有基于微服务的,有通过HTTP请求的,还有通过mq的。
那么在处理一次请求的时候,可能会调用多个服务或者调用多个其他系统功能,这样就会产生很多的日志,此时,如果想查看这一次调用的完整的请求链路的日志时,就会变得比较困难,虽然我们有一些集中的日志收集工具比如ELK,我们需要把这一些日志串联起来,这个问题很关键,因为如果没有串联起来,排查日志就是一件很困难的...
2023-07-25 00:00:00 |
Trace
-
分布式链路追踪-03-和 chatGPT 聊一下分布式系统跟踪工具,如何设计 span
Q1-分布式系统跟踪工具,如何设计 span
在分布式系统跟踪工具中,”Span” 是一个核心概念,它代表着一个跟踪单元或操作的一部分。
Span 是分布式系统中的一个时间跨度,用于表示一个请求或操作在分布式系统中的起始点和结束点。
设计 Span 的关键是捕获有关操作的重要信息,以便对系统的性能和行为进行分析。
下面是设计 Span 时需要考虑的几个关键点:
起始...
2023-07-25 00:00:00 |
Trace
-
分布式链路追踪-02-Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
概要
现代互联网服务通常被实现为复杂的、大规模的分布式系统。
这些应用程序是由软件模块的集合构建的,这些模块可能由不同的团队使用不同的编程语言开发,并且可以跨越多个物理设施的数千台机器。
在这样的环境中,有助于理解系统行为和推理性能问题的工具是非常宝贵的。
在这里,我们介绍了 Google 的生产分布式系统跟踪基础设施 Dapper 的设计,并描述了如何满足我们的低开销、应用程序级透...
2023-07-25 00:00:00 |
Trace
-
分布式链路追踪简介 dapper skywalking
分布式链路追踪简介
随着业务系统的不断发展、微服务架构的演进,从原来的单体应用架构、垂直应用架构、分布式 SOA 架构到现在的微服务架构,系统逐步走向微服务化以适应用户高并发请求等需求。
在微服务架构中,一个业务操作往往需要多个服务间协同操作,而在一个复杂的系统中出现问题的时候,需要我们能够快速的分析并定位到问题的原因,这就需要我们对业务进行一次还原,正是分布式链路追踪需要解决的问题。
...
2023-07-25 00:00:00 |
Trace
-
Redis exception ERR hash value is not an integer
报错
redis 报错
ERR hash value is not an integer
代码
其实是通过 redis 操作
redisTemplate.incr("key", String.valueOf(dbVo.getCount()))
dbVo 是从数据库获取的数据,count 对应的字段类型是 BigDecimal。
在 oracle 该字段定义是 Number,...
2023-07-21 00:00:00 |
Redis
-
TransmittableThreadLocal (TTL) 解决异步执行时上下文传递的问题
TTL 的作用
用ttl解决异步调用存在的问题(在这里我们也一并说了不再啰嗦)
上边我们也说了,MDC底层 DefaultThreadContextMap 是用 ThreadLocal 来保存的链路信息,而ThreadLocal是同一个线程,才会有相同的副本数据,而当我们在项目中使用线程池时候,主线程和子线程肯定是不一样的,那么这种情况下就得考虑如何将主线程的值传递给子线程,让子线程也能...
2023-07-19 00:00:00 |
Java
-
java agent-03-Java Instrumentation 结合 bytekit 实战笔记 agent premain
拓展阅读
前面几篇文档,我们简单介绍了一下 java Instrumentation。
java agent 介绍
Java Instrumentation API
本篇我们结合一下 bytekit 进行实际的文件修改。
Java Instrumentation 包介绍
简单介绍
基于 Instrumentation 来实现的有:
APM 产品: pinpoint、skywa...
2023-07-12 00:00:00 |
Java
-
java agent-03-Java Instrumentation 结合 bytekit 实战笔记 agent attach
拓展阅读
前面几篇文档,我们简单介绍了一下 java Instrumentation。
java agent 介绍
Java Instrumentation API
本篇我们结合一下 bytekit 进行实际的文件修改。
测试代码
整体目录
│ │ └─com
│ │ └─github
│ │ └─houbb
...
2023-07-12 00:00:00 |
Java