我正在开发一个Quarkus应用程序,它使用了小黑眼微配置文件的容错实现。
我们已经通过注释API (@Retry、@舱壁等)在客户端定义上配置了容错,它似乎可以工作,但是我们没有收到任何关于正在发生的事情的反馈。理想情况下,我们希望得到某种回调,但在第一步即使有日志也会有所帮助。
其他客户的情况如下:
@RegisterRestClient(configKey = "foo-backend")
@Path("/backend")
interface FooClient {
@POST
@Retry(maxRetries = 4, delay = 900)
@ExponentialBackoff
@Timeout(value = 3000)
fun getUser(payload: GetFooUserRequest): GetFooUserResponse
}查看日志,即使我们跟踪所有通信,即使我手动停止foo-backend并在退休人员耗尽之前再次启动它,我也看不到任何事件。
我们的日志配置现在看起来像这样,但仍然没有。
quarkus.rest-client.logging.scope=request-response
quarkus.rest-client.logging.body-limit=2048
quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level=DEBUG在发生容错事件时,是否有一种获得回调的方法?或者是一个记录他们出去的设置?我也会有兴趣知道什么时候我们的断路器是触发的,或当一个舱壁装满。现在,记录它们已经足够好了,但理想的情况是,我想以某种方式聆听它们。
发布于 2022-11-24 19:30:37
您可以为DEBUG类别启用io.smallrye.faulttolerance日志记录,并且您应该获得所需的所有信息。
特别是对于断路器,您可以为使用@CircuitBreakerName命名的断路器注册状态更改监听器--只需注入CircuitBreakerMaintenance并使用onStateChange。请参阅https://smallrye.io/docs/smallrye-fault-tolerance/5.6.0/usage/extra.html#_circuit_breaker_maintenance
不幸的是,舱壁上还没有类似的东西。
https://stackoverflow.com/questions/74564565
复制相似问题