我们的想法是让spring-vault使用假装客户端(利用hystrix的容错能力)。
以下代码段是spring-vault配置的示例; VaultTemplate bean用于库操作
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());
}
答案 0 :(得分:0)
Spring Vault中没有假装(openfeign)支持,但我们通过接受HTTP clients来支持各种ClientHttpRequestFactory
。
使用RibbonClientHttpRequestFactory
{/ 3}}提供Spring Cloud Netflix,可以使用功能区获得容错功能。