コンテキストユーレカは我々がサービスをプロキシするために、サービスの発見とZuulとしてユーレカと春クラウドネットフリックスを使用して、それらの負荷を分散しているサービスのステータス
を検出します。
マイクロサービスはNodeJSを使用して実装されており、NPMモジュールeureka-js-clientを使用してユーレカに登録され、その間にカスタム・レイヤーが設定され、すべてのマイクロサービスの一般的なものが処理されます。
問題
問題は、一つのサービスがダウンした場合ユーレカが認識しないということです。これは、Eureka(およびZuul)を再起動することなく、毎回異なるポート上のマイクロサービスを再配備して再起動する、自動デプロイメントを備えた開発インフラストラクチャを持つ際の問題です。
したがって、私たちは1つだけのマイクロサービスの10以上のインスタンスを持っていますが、すべてがbeeingとして認識されます。UP
。
-
ソリューションアプローチは、私はあまりクライアント上
heartbeatInterval
を設定しようとしたが、それは解決しません。 サーバー上で
renewalThresholdUpdateIntervalMs
を小さく設定しようとしましたが、それでも役に立たないです。より多くのイライラ、非助け財産試行...
私はインスタンスを立ち退かせるためにか、そのインスタンスのDOWN
にステータスを設定するユーレカを設定するにはどうすればよいの質問
妥当な時間(30分ほどではない)でハートビートを送信しないでください。
コードスニペット
自体がmentionableコードが含まれていないサーバー(春クラウドスターターを使用してユーレカ・サーバを起動するには、わずか数注釈)。
ユーレカサーバの設定(私はすべての非稼働試行を削除した):(eureka-js-clientを使用して)サーバに送信され
server:
port: 8761
spring:
cloud:
client:
hostname: localhost
eureka:
instance:
address: 127.0.0.1
hostname: ${spring.cloud.client.hostname}
クライアント構成:
{
instance : {
instanceId : `${CONFIG.instance.address}:${CONFIG.instance.name}:${CONFIG.instance.port}`,
app : CONFIG.instance.name,
hostName : CONFIG.instance.host,
ipAddr : CONFIG.instance.address,
port : {
'$' : CONFIG.instance.port,
'@enabled' : true
},
homePageUrl : `http://${CONFIG.instance.host}:${CONFIG.instance.port}/`,
statusPageUrl : `http://${CONFIG.instance.host}:${CONFIG.instance.port}/info`,
healthCheckUrl : `http://${CONFIG.instance.host}:${CONFIG.instance.port}/health`,
vipAddress : CONFIG.instance.name,
secureVipAddress : CONFIG.instance.name,
dataCenterInfo : {
'@class' : 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
name : 'MyOwn'
}
},
eureka : {
host : CONFIG.eureka.host,
port : CONFIG.eureka.port,
servicePath : CONFIG.eureka.servicePath || '/eureka/apps/',
healthCheckInterval : 5000
}
}
セルフプロテクションモードを有効にすると、サービスは正しく削除されます。退去をスピードアップすることは可能ですか?現在、サービスを撤回するには約2〜3分かかります。また、自己保存モードが無効になっているという警告を表示することはできますか? –
あなたは退去時間を調整することができます、私の携帯電話であなたにプロパティを教えてください。警告を無効にすることはできません。 – spencergibb
'eureka.leaseInfo.renewalIntervalInSecs'を' 10'に、 'eureka.leaseInfo.durationInSecs'を' 20'に、ハートビートの間隔を5秒に変更しました。それはサービスの退去をスピードアップします。 - ご協力ありがとうございます! –