【发布时间】:2017-09-16 16:42:32
【问题描述】:
我正在尝试在多个内部和外部服务/服务器之间创建 REST 调用的可视化。我想知道哪个端点调用了另一个端点。我认为这样做的唯一方法是在调用方执行此操作,因为接收方没有关于调用方端点的任何信息。
这是我的想法:
- 我创建了一个像 RestTemplate 这样的对象并调用该方法。
- 我创建了一个拦截器或类似的东西,它将从 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 之类的东西。