0

这个想法是让 spring-vault 使用 feign 客户端(利用 hystrix 的容错能力)。

  1. spring-vault 支持 feign 客户端吗?或者如果不支持开箱即用,是否有解决方法
  2. 或者是否可以通过 feign 客户端(某种代理模式)路由 spring-vault 调用。

以下代码片段是 spring-vault config 的示例;VaultTemplate bean 用于 Vault 操作

public VaultEndpoint vaultEndpoint() {

    try {
        return VaultEndpoint.from(new URI(vaultUri));
    } catch (URISyntaxException uriSyntaxException) {
        throw new IllegalStateException("Some Exception", uriSyntaxException);
    }
}
@Bean
public VaultTemplate vaultTemplate() {
    return new VaultTemplate(vaultEndpoint(), httpRequestFactory(), sessionManager());
}

@Bean
public VaultTransitOperations vaultTransitOperations() {
    return vaultTemplate().opsForTransit(transitPath);
}

@Bean
public ClientHttpRequestFactory httpRequestFactory() {
    ClientOptions clientOptions = new ClientOptions(1000, 1000);

    return ClientHttpRequestFactoryFactory.create(clientOptions, SslConfiguration.NONE);
}

@Bean
public RestOperations vaultClient() {
    return VaultClients.createRestTemplate(vaultEndpoint(), httpRequestFactory());
}
4

1 回答 1

0

Spring Vault 中没有 feign ( openfeign ) 支持,但我们通过接受ClientHttpRequestFactory.

RibbonClientHttpRequestFactory您可以通过使用Spring Cloud Netflix来获得 Ribbon 的容错功能。

于 2018-03-14T13:16:40.887 回答