【问题标题】:Find out which endpoint sent a REST call找出哪个端点发送了 REST 调用
【发布时间】:2017-09-16 16:42:32
【问题描述】:

我正在尝试在多个内部和外部服务/服务器之间创建 REST 调用的可视化。我想知道哪个端点调用了另一个端点。我认为这样做的唯一方法是在调用方执行此操作,因为接收方没有关于调用方端点的任何信息。

这是我的想法:

  1. 我创建了一个像 RestTemplate 这样的对象并调用该方法。
  2. 我创建了一个拦截器或类似的东西,它将从 RestTemplate 中提取信息。

我的问题是我不确定如何找出哪个 REST 端点调用了 RestTemplate 方法。 RestTemplate(或其他类似对象)调用可以在嵌套方法中调用,例如,端点可以调用私有方法,然后调用外部服务本身。

有什么方法可以获取这些信息吗?还是我可能只是想得太苦了,有更简单的方法可以做到这一点?

例子:

@GetMapping("/hello")
public String hello() {
    methodThatCallsOtherEndpoint("something.com/weather"); // this method inside itself calls an endpoint
    logRestCall("localhost:8000/hello", "something.com/weather"); // how do I do this automatically without having to type it myself?

    return "hello";
}

感谢您的帮助。

【问题讨论】:

  • 听起来你想要的是 Zipkin 之类的东西。

标签: java spring rest


【解决方案1】:

如果这些服务/服务器有一个静态 IP,你可以用它们的 IP 地址标记它们吗?

【讨论】:

    【解决方案2】:

    您可以使用Spring Sleuth来追踪不同REST调用之间的关系。

    【讨论】:

    • 这看起来很有希望,我会研究一下。谢谢你的建议!
    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 2023-02-15
    • 2012-11-13
    • 1970-01-01
    • 2018-02-28
    • 2017-08-02
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多