【发布时间】:2019-11-19 10:14:55
【问题描述】:
我正在实现一个由 n 个微服务(Java、Spring)组成的产品。
问题是当某些用例集成 ex。 4 个这样通信的微服务:
A -> B -> C -> D
并且 D 在执行任务时抛出异常。服务 A 需要知道问题的根源是服务 D。
我知道我可以在服务 D 中实现一个自定义异常处理程序,它可以返回一些额外的属性,如 exceptionSource="D" 并将其传播到所有服务,但它并不是很酷,需要大量手动实现。
你知道有什么方法可以让它更自动化吗?也许有一些模式/库/魔术弹簧属性?
【问题讨论】:
-
这似乎是跟踪传播的一个小扩展。例如。 Zipkin 或 Jaeger
-
当我需要监控服务之间的通信时,Zipkin 非常棒,但是因为它不会扩展错误响应,所以服务 A 不会知道服务 D 中发生了问题。
标签: java spring rest api microservices