【问题标题】:Micronaut Consul Client and Retry supportMicronaut Consul 客户端和重试支持
【发布时间】:2021-06-20 15:09:39
【问题描述】:

从 Consul 加载配置时,Micronaut 中的 Discovery Client 是否支持重试模式?

我在文档中找不到示例:https://docs.micronaut.io/latest/guide/#distributedConfiguration 或项目来源。 唯一支持重试的组件是 Micronaut Consul Service Discovery。

但是,当 Consul Config 需要重试时,有一些用例。而 Spring Cloud Consul 从一开始就支持它。 那么如果它本身不支持,有什么方法可以提供自定义的用户定义的解决方案?

谢谢, 谢尔盖

【问题讨论】:

    标签: java micronaut consul


    【解决方案1】:

    不是开箱即用,但它很容易定制,因为ConsulConfigurationClient 使用ConsulClient 实现,这是另一个 bean。

    您可以将此 bean 替换为以下内容,以应用适合您的任何重试策略:

        @Client(id = ConsulClient.SERVICE_ID, path = "/v1", configuration = ConsulConfiguration.class)
        @Requires(beans = ConsulConfiguration.class)
        @BootstrapContextCompatible
        @Replaces(AbstractConsulClient.class)
        @Retryable(attempts = "5", delay = "1s")
        abstract class MyConsulClient extends AbstractConsulClient {
    
        }
    

    【讨论】:

    • 谢谢你,@greame-rocher。但是,此类不会替换现有的 AbstractConsulClient(正如我从调试中看到的那样)并立即终止应用程序而无需重试。
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2019-12-08
    • 2018-02-10
    • 1970-01-01
    • 2012-04-08
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多