如何实现请求/响应存储以及它的名称是什么

86次阅读
没有评论

问题描述

想要构建一个系统,用于存储和检索请求/响应的相关信息,包括处理日志、指标以及请求/响应的实际内容。用户希望能够在与第三方提供商集成时进行故障排除。用户已经尝试过使用ZipKin和Spring Cloud Sleuth,但发现它们主要用于”追踪”,并没有持久化、处理和显示实际的请求/响应内容。用户想知道这种”请求/响应持久化”的正确名称是什么,以及是否有一种与编程语言无关的解决方案。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

这种将请求/响应存储起来的系统通常被称为”审计追踪”或”审计日志”系统。它可以帮助用户记录和存储请求/响应的详细信息,以便进行故障排除和监控。下面是一种实现这种系统的方法:
1. 使用一个前置代理(如Nginx、Envoy等)来拦截所有的请求,并为每个请求分配一个唯一的关联ID。
2. 将请求和响应的相关信息(包括请求/响应体)发送到一个中央存储系统(如Elasticsearch)进行存储和索引。
3. 使用一个可视化工具(如Kibana或Grafana)来查询和展示存储的请求/响应数据。
以下是一个示例架构图:

+-------------------+         +-------------------+         +-------------------+
|                   |         |                   |         |                   |
|   Front Proxy     |         |   Storage System  |         |   Visualization   |
|   (e.g. Nginx)    | ------> |   (e.g. Elasticsearch)  | ------> |   Tool            |
|                   |         |                   |         |                   |
+-------------------+         +-------------------+         +-------------------+

在这个示例中,前置代理拦截所有的请求,并为每个请求分配一个唯一的关联ID。然后,请求和响应的相关信息被发送到一个中央存储系统(如Elasticsearch)进行存储和索引。最后,用户可以使用可视化工具(如Kibana或Grafana)来查询和展示存储的请求/响应数据。

方案2

另一种实现请求/响应存储的方法是使用现有的日志收集工具(如Logstash、Fluentd等)来收集和存储请求/响应的日志。这种方法不需要对应用程序进行修改,可以在编程语言无关的情况下实现请求/响应的存储。以下是一个示例架构图:

+-------------------+         +-------------------+         +-------------------+
|                   |         |                   |         |                   |
|   Application     |         |   Log Collection  |         |   Storage System  |
|                   | ------> |   (e.g. Logstash) | ------> |   (e.g. Elasticsearch)  |
|                   |         |                   |         |                   |
+-------------------+         +-------------------+         +-------------------+

在这个示例中,应用程序生成的日志被收集到一个中央日志收集系统(如Logstash)中,并存储在一个中央存储系统(如Elasticsearch)中。用户可以使用可视化工具(如Kibana或Grafana)来查询和展示存储的请求/响应数据。
请注意,这种方法可能需要对应用程序进行一些配置,以确保生成的日志包含请求/响应的相关信息。

方案3

除了上述的解决方案,还有一些商业化的集成提供商可以提供类似的功能。这些提供商通常提供一个控制面板,用户可以在其中找到与其流程相关的信息,包括请求/响应的内容。用户可以通过搜索类似”请求/响应存储”或”审计追踪”的关键词来寻找这些提供商。
请注意,不同的解决方案可能适用于不同的场景和需求。用户应根据自己的具体情况选择最适合的解决方案。

正文完