Java 跟踪服务间调用的方法
我正在Java上开发几个通过HTTP相互通信的服务。Logback用作日志框架 在一个服务中发生错误的情况下,通过查看服务日志来定义错误原因并不困难。但如果我们有一个下游呼叫,它会影响许多服务: 服务A->服务B->服务C->服务D 最后一个服务由于错误而失败,我需要一些方法来跟踪调用服务A,以解决问题Java 跟踪服务间调用的方法,java,web-services,logging,logback,Java,Web Services,Logging,Logback,我正在Java上开发几个通过HTTP相互通信的服务。Logback用作日志框架 在一个服务中发生错误的情况下,通过查看服务日志来定义错误原因并不困难。但如果我们有一个下游呼叫,它会影响许多服务: 服务A->服务B->服务C->服务D 最后一个服务由于错误而失败,我需要一些方法来跟踪调用服务A,以解决问题 这个问题有现成的解决办法吗?我是否应该为日志消息添加一些对于每个下游调用都是唯一的附加属性?如果要跟踪执行流,则需要在每条消息上添加某种标记。您将需要: 请求标识符 服务标识符 当流启动时,
这个问题有现成的解决办法吗?我是否应该为日志消息添加一些对于每个下游调用都是唯一的附加属性?如果要跟踪执行流,则需要在每条消息上添加某种标记。您将需要:
- 请求标识符
- 服务标识符李>
当然,上面的例子是一个简单的例子,所以它可以扩展到其他情况。其思想是将调用视为一种堆栈。在每个跃点上,您都会将一些标识“推”到消息中。基于spring的服务实际上有一个解决方案:
过滤器将唯一的请求标识符作为头(如果没有这样的头)添加到每个请求中。您可以将id放入
MDC
,并将其添加到具有服务id的日志条目中。非常感谢!我找到了与你的建议相似的现成解决方案。