簡體   English   中英

Spring Cloud Hystrix 在第一次命令調用時失敗

[英]Spring Cloud Hystrix fails at first command call

我注意到第一個 Hystrix 命令總是調用我的回退,之后以下調用在 Spring Cloud Netflix 中工作正常。

我應該設置任何設置來避免它嗎? 為什么會發生?

看起來像是基礎設施初始化和超時的副作用https://groups.google.com/d/msg/hystrixoss/_jnxAyS20lA/fWo0ZAHoxt8J

我通過從回退方法再次發送失敗的請求來解決這個問題,這次使用DicoveryClient查找遠程 Pod 之一的 IP:

private String getNameFallback(int delay) {
    RestTemplate rt = new RestTemplate();
    return rt.getForObject(getUrl(delay), String.class);
}

private String getUrl(int delay) {
    String url = String.format("http://%s/name?delay=%d", SERVICE_ID, delay);
    if (discoveryClient != null) {
        Optional<ServiceInstance> svc = discoveryClient.getInstances(SERVICE_ID).stream().findFirst();
        if (svc.isPresent()) {
            String host = svc.get().getHost();
            int port = svc.get().getPort();
            url = "http://" + host + ":" + port + "?delay=" + delay;
        }
    }
    return url;
}

您可以在此處找到更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM