[英]load balancer requests fail unexpectedly sometimes on AWS in spring boot application
更新我经常收到以下响应:响应代码 502 和标头 [awselb/2.0] 有时:响应代码 500 和标头为空
我认为这是亚马逊的弹性负载平衡器在搞乱我们?
原始问题
我们的服务器在 AWS 的不同区域运行,有时它们会相互发送 GET 请求以检查它们的状态。 我们也有外部监控服务检查相同的调用。
有时(过于频繁)我们会收到 Http 3XX 响应,但我们从日志和其他监控服务中知道所有服务器都运行良好。 我们还看到了同一网络上服务器的类似行为。
我想知道我们的 http 客户端是否配置不当或某处存在错误。 请参阅下面的代码,了解我们用于发送请求的服务。 有什么建议? 我们使用 com.squareup.okhttp3 版本 3.14.2。
(抱歉在没有更好地隔离原因的情况下发布问题,只是希望其他人之前经历过这种情况并有解决方案。)
import okhttp3.*;
@Service
public class HttpClientService {
public static final MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
private OkHttpClient client = null;
private long httpClientTimeoutSeconds = 10;
@PostConstruct
public void init() {
this.client = new OkHttpClient.Builder()
.connectTimeout(httpClientTimeoutSeconds, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.connectionPool(new ConnectionPool(20, 5, TimeUnit.MINUTES))
.build();
}
public Response get(String url) throws IOException {
Request.Builder requestBuilder = new Request.Builder()
.header("accept", "application/json")
.header("accept-encoding", "gzip, deflate")
.header("content-type", "application/json");
Request request = requestBuilder
.url(url)
.get()
.build();
return client.newCall(request).execute();
}
}
看起来请求的 url 会导致一些“重定向”。
只是一个想法:也许请求的 url 会产生一些到 https 的重定向?
我肯定会检查请求的 url 以及为什么它返回一些重定向 http 代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.