我有一个实现4个微服务的系统。这四种服务需要偶尔共享信息,他们使用Spring的RestTemplate通过RESTful请求来完成。目前约有5%-10%的请求失败,例外情况如下:
boot-module
同样,这似乎是随机的,只有5%-10%的时间才会失败。我尝试了很多东西但似乎没什么用。目前我正在尝试这个:
配置:
$ echo ' 809 23/Dec/2008:19:20' | sed -s 's/^ \{3,\}//'
809 23/Dec/2008:19:20
服务:
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://otherservice.com/path": Connection reset; nested exception is java.net.SocketException: Connection reset
我尝试了许多不同的方法,没有任何结果。我试过这个例子:
@Configuration
public class BeanConfiguration {
@Bean
public RestTemplate restTemplate() {
ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
return new RestTemplate(requestFactory);
}
}
我正在记录我的每个微服务中的所有请求,但似乎请求实际上并未触及其他服务。他们只是失败了。根据日志,它们在不到50毫秒内失败,因此不是超时问题。对于其中的几个,我已经实现了指数退避重试,但这不是一个真正可行的解决方案。