我有5个使用Springboot
(A,B,C,D和E)开发的Web应用程序。
以下是2个通话的流程
第一流:
A's Controllers --> A's Service --> B's Controller --> B'Service --> C's Controller --> C's Service --> C's Dao --> DB
SecondFlow:
A's Controllers --> A's Service --> D's Controller --> D'Service --> B's Controller --> B'Service --> C's Controller --> C's Service --> C's Dao --> DB
一旦从数据库中获取数据/将数据推送到数据库中,则相应的方法将返回一些值。对于记录状态的每种方法(输入详细信息和返回状态)。我能够分别在每个服务中查看日志。但是我想在一个文件中看到完整的一个 request-response(A的控制器请求到A的控制器响应)周期日志。
我该如何实现?
答案 0 :(得分:2)
这是一个非常糟糕的主意,但让我们退后一步,看看问题所在,而不是猜测解决方案。
您有多个应用程序可以协同协作以执行(分布式)事务。您需要跟踪这些交互以查看数据流。由于许多原因,这非常有用,因此您关心它是正确的。将所有日志条目收集在一个接收器中也是正确的,即使它不是一个文件,因为它也不适合管理生产工作负载。许多组织实施的典型方案如下
奖金:使用缓冲区来管理负载峰值
有精确的工具可以完成工作
但您仍然错过了一步
假设您调用REST API,就像POST / users /:userId / cart之类的简单
....然后返回
为了不迷失在这个迷宫中,您只需要一件事:关联ID
分布式系统使一切变得更加复杂,并增加了我们以前做过的事情的开销,但是如果您放下口袋来管理复杂性的正确工具,您将看到好处
答案 1 :(得分:0)
您可以实现中央记录系统,例如:
用于集中式日志记录的ELK堆栈(弹性搜索,Logstash和Kibana)。