更新 我经常收到以下回复: 响应代码 502 和 header [awselb/2.0] 有时: 响应代码 500 和 header null
我认为这是亚马逊的弹性负载均衡器在搞乱我们?
原始问题
我们的服务器在 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 会产生一些到 https 的重定向?
我肯定会检查请求的 url 以及为什么它返回一些重定向 http 代码。
关于java - 在 Spring Boot 应用程序中,负载均衡器请求有时会在 AWS 上意外失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682039/