繁体   English   中英

负载均衡器请求有时在 Spring Boot 应用程序中的 AWS 上意外失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM