代码之家  ›  专栏  ›  技术社区  ›  Kannaiyan

如何跨多个Web应用程序、多个微服务跟踪会话

  •  1
  • Kannaiyan  · 技术社区  · 7 年前

    我想跨多个Web应用程序、多个微服务跟踪会话。我的所有Web应用程序都是静态文件,微服务运行在带有kubernetes的nodejs容器下。

    我在不同的Web应用程序和不同的微服务之间跟踪设置。但是在一个视图中合并和查看所有内容太麻烦了。

    是否有任何方法可以在单个会话下查看所有这些内容?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Anton Kostenko    7 年前

    Kubernetes本身不支持任何请求跟踪,但是您可以使用 伊斯蒂奥 和Kubernetes一起 Distributed Tracing 特征。

    简而言之,您的应用程序将需要重新发送附加的头文件,ISIO将检测它,从所有服务收集信息,并显示请求跟踪。

    而且,它支持网格,所以理论上,您的应用程序可以更快、更安全地工作(因为网络规则)。

    你可以读到关于Isito的书 here 关于追踪 here 和 here 是如何在Kubernetes中设置它的说明。

        2
  •  0
  •   Bishoy    7 年前

    您可以使用一个特殊的头在不同的微服务(应用)之间跟踪HTTP请求,将所有后续请求与原始请求关联起来。

    例如,您的Web应用程序向第一个微服务(A)发送HTTP请求(REST API调用),该服务(A)发现请求没有相关ID(X-CorrelationID头),并将其添加,然后将该相关ID保存到当前调用/会话上下文中,并将其转发到所有后续的API调用到其他微服务。然后,当所有其他微服务遵循相同的逻辑时,它们也将添加/使用相关ID,您将能够在系统中的所有微服务中跟踪请求。

    许多APM(应用程序性能监视)工具都使用此模式。一旦所有日志聚合到一个地方,您就可以通过特定的关联ID过滤查询,以查看特定用户请求/操作的完整跟踪。