我加入了一个遗留项目,几乎没有记录。几天前我们有一个大规模失败的产品发布,我们不知道发生了什么。这就是为什么改进伐木现在是优先考虑的原因之一。
我想介绍像"相关ID"这样的内容,但我不确定采取什么方法。谷歌搜索几乎总是带我到适合"微服务通过REST"建筑,这不是我的情况。
架构是在同一个Unix机器上运行的Spring Framework和NodeJS的混合体 - 它看起来像这样:
我想到的选项是:
其他任何想法如何才能正确完成?
答案 0 :(得分:2)
你走在正确的轨道上。生成UUID并将其作为标头传递给请求。对于没有此标头的任何请求,添加一个检查它的过滤器并添加它。 您的过滤器将选择这样的标头,并将其放在线程本地,MDC可以从中挑选它。执行任何日志记录后,您将拥有相关ID。在调用任何其他进程/请求时,您需要确保将此id作为参数/标头传递。循环重复。
执行任务的线程应该只知道此ID。由你决定如何传递它。尝试将这些问题从您的商业逻辑(使用方面或您认为合适的任何其他方式)中分离出来,并且您可以更轻松地将它置于引擎盖下。
您可以参考此example