当前位置: 首页 > 知识库问答 >
问题:

Spring Webflux侦探Zipkin:重复请求的证明?

伏砚
2023-03-14

请提出有关使用Spring Webflow Sleuth Zipkin服务器重复请求的小问题。

我有一个服务器,代码超级简单:

    @PostMapping("/question")
    public Mono<String> question() {
        LOGGER.info("This has been called!");
        return someService.getResponse();
    }

每小时,我都希望只有一个我知道的客户端只调用这个endpoint一次。

因此,每小时,我都会在我的日志中看到这一点:

INFO [myservice,c3a25fb0fb7426b7,c3a25fb0fb7426b7] 10 --- [or-http-epoll-3] c.my.Controller  : This has been called!

到现在为止,一直都还不错。

问题是,有几次,我确实在日志中看到:

INFO [myservice,5278cfd673fddc60,1582c3da8d01adaa] 10 --- [or-http-epoll-2] c.my.Controller  : This has been called!
INFO [myservice,5278cfd673fddc60,c8a85b0275b6bfdd] 10 --- [or-http-epoll-3] c.my.Controller  : This has been called!

很自然地,我假设我认识的唯一客户,没有像预期的那样打电话给我一次,而是打了两次。

然而,客户端的日志显示只发出了一个http出站请求。

请问,看到相同的跟踪ID,但不同的Span ID就足以证明,有确凿的证据表明至少发送了两个请求吗?

[or-超文本传输协议-epolp-2]和[or-超文本传输协议-epolp-3]也可以帮助证明吗?

由于这里只写了一些信息,请问有没有可能证明有关副本的任何信息?

非常感谢。

共有1个答案

李安歌
2023-03-14

您可以通过打开访问日志来证明这一点。为两个不同的日志事件拥有相同的traceID并不能证明任何事情,可能会发生以下情况:

  • 客户给你打了两次电话
  • 客户给你打了一次电话但你创造了另一个跨度
  • 客户打电话给你,另一个客户也打电话给你

您可以启用可以证明这一点的访问日志,也可以使用rq/rs日志库(如日志)来为您实现这一点。我建议只启用访问日志。

 类似资料:
  • 我们正在尝试使用sleuth向zipkin发送日志。我们使用的是spring boot'2.2.6。发布版和云版Hoxton。释放我添加了以下依赖项 并在logback中添加了以下道具。xml[%X{traceId}%X{spanId}%X{X-Span-Export}] 在我们的2个服务中进行了上述更改后,我们原本希望zipkin会有一些日志,但什么都没有出现。然后我们尝试在应用程序中添加以下属

  • 首先我有一个小问题与这个类 无法导入此类,仅在添加此依赖项时导入 我的大问题是,当我试图使用zipkin干扰跟踪时,我添加了所需的依赖项,但每当我启动应用程序时,它都通过启动中的异常。 这是堆栈跟踪。 我的pom.xml 我会有人来帮我解决这些问题,我也想了解为什么这个例外,为什么采样器类不导入只有当我添加它的依赖,但我看到在其他项目代码有没有需要的依赖。

  • 我想在我的应用程序中使用spring cloud sleuth。对于每个请求,我都会在标头中获得“traceId”,我希望sleuth将其用作跟踪id。但问题是,sleuth仅在密钥为“X-B3-traceId”时才从标头中获取跟踪id。所以为了改变这一点,我使用了引用。但当我尝试构建应用程序时,我得到了以下结果: 在启动服务器时,我得到了以下信息: 我使用的是Spring boot版本--“2.

  • 当应用程序使用maven时,我有一个Spring Cloud Sleuth Stream应用程序正在工作并发送到我的本地OpenZipkin(docker),但是当我尝试运行gradle Spring boot应用程序时,Zipkin不会显示跟踪。有趣的是,Spring日志似乎显示了正确的跟踪信息。。因此,应用程序本身正在识别侦探,但出于某种原因,Zipkin要么没有收到信息,要么没有显示。我进入

  • 我有一个Spring Boot应用程序,它依赖于spring-cloud-starter-sleuth-3.0.3和spring-cloud-sleuth-zipkin-3.0.3。 我需要在从webclient调用API时将跟踪id传递给请求头。 示踪剂。currentSpan()为null,因此引发NPE。 根据文档,给出了将跟踪id添加到响应头的方法https://docs.spring.i

  • 默认情况下,Spring Sleuth只向Zipkin发送10%的请求。通过设置可以提高百分比。不幸的是,无论我将它设置为什么值,它都停留在10%。我试过1.0,0.5,1,100。 从输出 不管值是多少,当我提出多个请求时,只有10%的请求到Zipkin。 我们使用的是Spring Cloud的Finchley.m8版本和Spring Boot的2.0.0版本。