2016-08-24 4 views
1

コンテキストユーレカは我々がサービスをプロキシするために、サービスの発見とZuulとしてユーレカと春クラウドネットフリックスを使用して、それらの負荷を分散しているサービスのステータス

を検出します。

マイクロサービスはNodeJSを使用して実装されており、NPMモジュールeureka-js-clientを使用してユーレカに登録され、その間にカスタム・レイヤーが設定され、すべてのマイクロサービスの一般的なものが処理されます。

問題


問題は、一つのサービスがダウンした場合ユーレカが認識しないということです。これは、Eureka(およびZuul)を再起動することなく、毎回異なるポート上のマイクロサービスを再配備して再起動する、自動デプロイメントを備えた開発インフラストラクチャを持つ際の問題です。

したがって、私たちは1つだけのマイクロサービスの10以上のインスタンスを持っていますが、すべてがbeeingとして認識されます。UP


  1. ソリューションアプローチは、私はあまりクライアント上heartbeatIntervalを設定しようとしたが、それは解決しません。

  2. サーバー上でrenewalThresholdUpdateIntervalMsを小さく設定しようとしましたが、それでも役に立たないです。

  3. より多くのイライラ、非助け財産試行...


私はインスタンスを立ち退かせるためにか、そのインスタンスの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 
    } 
} 

答えて

1

しばらくしてから、1つのマイクロサービスのインスタンスが10個以上ある場合、 が1つだけですが、すべてがUPとして認識されます。

ユーレカには「自己保存」モードがあります。インスタンスのハートビートの85%未満が登録されている場合は、インスタンスを削除しません。あなたはユーレカダッシュボードで警告を見ることができるはずです。

+0

セルフプロテクションモードを有効にすると、サービスは正しく削除されます。退去をスピードアップすることは可能ですか?現在、サービスを撤回するには約2〜3分かかります。また、自己保存モードが無効になっているという警告を表示することはできますか? –

+0

あなたは退去時間を調整することができます、私の携帯電話であなたにプロパティを教えてください。警告を無効にすることはできません。 – spencergibb

+0

'eureka.leaseInfo.renewalIntervalInSecs'を' 10'に、 'eureka.leaseInfo.durationInSecs'を' 20'に、ハートビートの間隔を5秒に変更しました。それはサービスの退去をスピードアップします。 - ご協力ありがとうございます! –

関連する問題