这个想法是让spring-vault使用假客户端(以利用hystrix的容错功能(。
- spring-vault 是否支持假装客户端? 或者如果没有开箱即用的支持,是否有解决方法
- 或者是否有通过假客户端(一种代理模式(路由弹簧保险库调用。
以下代码片段是 spring-vault 配置的示例;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());
}
Spring Vault 中没有假装(openfeign(支持,但我们通过接受ClientHttpRequestFactory
来支持各种 HTTP 客户端。
您可以通过使用 Spring Cloud Netflix 提供RibbonClientHttpRequestFactory
来获得功能区的容错能力。