我正在我的应用程序中实现一个关联ID,并希望对此设计提供一些反馈。首先要考虑的是,相关ID应该可用于所有日志。
可以说我有一个Web(前端)应用程序,可以为用户提供页面。它与提供数据的两个API进行通信。该API不会向用户公开,因此所有请求都在前端应用程序中“开始”。
API的工作很简单,它们使用前端应用程序所有标头中提供的相关ID(X-Correlation-ID)并将其打印在任何日志中。
前端应用程序必须生成ID,将其添加到传出请求的标头中,但还必须使用ID。
我的问题是:前端应用程序如何存储关联ID? 我的第一个想法是,它将修改传入的请求并添加头(如果不存在),但是这会使传入的请求有些“不可靠”,因为现在已对其进行了修改。 另一个想法是,它可能存储为按请求清除的某种全局应用程序。
答案 0 :(得分:0)
相关ID,即通常附加到标头(如Request-ID,X-Request-ID,X-Trace-ID,X-Correlation-ID)的ID,通常是每个请求颁发。
您似乎想将其本地存储在客户端上。您所描述的听起来更像是一个“会话ID”,当客户端“重新启动”时该ID将被重置。如果是这种情况,那么您只需使用本地/会话存储或cookie来存储并在需要时清除它。
请记住上面的第一句话。每个请求通常使用相关ID。我通常做什么:
例如heroku does。许多其他服务/公司也一样。
不用说,您可以将两个ID(您所引用的“会话” ID加上每个请求生成的ID)结合起来,以更好地了解日志中发生的事情等。