私はEurekaに登録されたRESTサービスを呼び出すために、簡単なSpring Cloud Ribbonアプリケーションを作成しました。Spring Cloud Ribbonのribbon.serverListRefreshIntervalのデフォルト値を上書きする方法は?
しかし、ribbon.serverListRefreshInterval
の値を上書きする方法はありますか?デフォルト値は30秒です。私は時間間隔を短縮したいと思います。
ありがとうございます。
私はEurekaに登録されたRESTサービスを呼び出すために、簡単なSpring Cloud Ribbonアプリケーションを作成しました。Spring Cloud Ribbonのribbon.serverListRefreshIntervalのデフォルト値を上書きする方法は?
しかし、ribbon.serverListRefreshInterval
の値を上書きする方法はありますか?デフォルト値は30秒です。私は時間間隔を短縮したいと思います。
ありがとうございます。
はして試してみてください:myService
は、あなたの目的地のmicroserviceの名前です
myService.ribbon.ServerListRefreshInterval=10000
。
UPDATE:
スーパーで@Deprecated
public ZoneAwareLoadBalancer(IClientConfig clientConfig, IRule rule,
IPing ping, ServerList<T> serverList, ServerListFilter<T> filter) {
super(clientConfig, rule, ping, serverList, filter);
}
:
@Deprecated
public DynamicServerListLoadBalancer(IClientConfig clientConfig, IRule rule, IPing ping,
ServerList<T> serverList, ServerListFilter<T> filter) {
this(
clientConfig,
rule,
ping,
serverList,
filter,
new PollingServerListUpdater()
);
}
お知らせPollingServerListUpdater
コンストラクタ:
私はそのLoadBalancerBuilder
呼び出しを見つけた掘り
private static int LISTOFSERVERS_CACHE_REPEAT_INTERVAL = 30 * 1000; // msecs;
public PollingServerListUpdater() {
this(LISTOFSERVERS_CACHE_UPDATE_DELAY, LISTOFSERVERS_CACHE_REPEAT_INTERVAL);
}
public PollingServerListUpdater(IClientConfig clientConfig) {
this(LISTOFSERVERS_CACHE_UPDATE_DELAY, getRefreshIntervalMs(clientConfig));
}
2番目の設定では、デフォルトの更新間隔を変更できます。しかし、これは最初に呼び出されたものなので、deプロパティは無視されます。
UPDATE 2:
この程度の未解決の問題があります:https://github.com/spring-cloud/spring-cloud-netflix/issues/1304
@codependent
application.yml構成の下に入れた後、設定を有効にdidntの見えました。私はインスタンスのリストは、(eureka.client.registryフェッチ間隔-secondsパラメータによって)リボン側に更新されていることが観察さ
Compute-Service:
ribbon:
ServerListRefreshInterval: 1000
、しかしリボンはまだ死んでインスタンスを指摘:
[tbeatExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_RIBBON-CONSUMER/192.168.1.101:Ribbon-Consumer:3333 - Heartbeat status: 200
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Got delta update with apps hashcode UP_2_
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Added instance 192.168.1.101:Ribbon-Consumer:3333 to the existing apps in region null
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Deleted instance 192.168.1.101:Compute-Service:2222 to the existing apps
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Added instance 192.168.1.101:Compute-Service:1111 to the existing apps in region null
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : The total number of instances fetched by the delta processor : 3
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : The total number of all instances in the client now is 2
[freshExecutor-0] com.netflix.discovery.DiscoveryClient : Completed cache refresh task for discovery. All Apps hash code is Local region apps hashcode: UP_2_, is fetching remote regions? false
[nio-3333-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://Compute-Service/add": Connection refused; nested exception is java.net.ConnectException: Connection refused] with root cause
192.168.1.101:Compute-Service:1111が正しいサービスインスタンスで、192.168.1.101:Compute-Service:2222がデッドインスタンスでしたが、明らかにリボンはデッドインスタンスを指していました。つまり、リボンServerListキャッシュは更新されませんでした。
はあなたのEurekaサーバで 'Compute-Service'として登録されたサービスですか?大文字に注意してください。 – codependent
確かに、タイプミスがないことをダブルチェックし、後ほど参考のためにいくつかのスクリーンショットを添付します –
あなたの貴重な答えをありがとう、バグがすぐに修正されることを願っています –