1

集計レイヤ/ APIゲートウェイがマイクロサービスを呼び出すマイクロサービスベースのアプリケーションを設定しています。 Eurekaはサービス発見に使用され、リボンはRestTemplateの負荷分散を提供します。ユーレカリボンLoadBalancerキャッシュ更新の遅延

アグリゲーション - >集約コールユーリカ/リボン/レストテンプレートを使用したマイクロサービス。

私は4つの異なるポート上で自分のマシン上で動作する1つのマイクロサービスタイプのインスタンスを4つ持っています。同じRESTエンドポイントを繰り返し押すと、リクエストはラウンドロビン方式で適切にロードバランスされます。

マイクロサービスインスタンスの1つを停止すると、サービスはユーレカから登録抹消されますが、LoadBalancerは依然としてデッドサービスに要求を送信し、呼び出しは失敗します。

集約:

@Configuration 
    @ComponentScan(basePackages = {"com.mycompany.aggregator"}) 
    @EnableAutoConfiguration 
    @EnableEurekaClient 
    public class AggregatorApplication { 

     public static void main(String[] args) { 
      SpringApplication.run(AggregatorApplication.class, args); 
     } 
    } 

**Configuration:** 
@Configuration 
public class AggregatorConfig { 

    @Bean 
    @LoadBalanced 
    public RestTemplate restTemplate() { 
     return new RestTemplate(); 
    } 
} 

@Configuration 
@RibbonClient(name="microservice", configuration = FooConfig.class) 
public class TestConfig { 
} 

FooConfigは、コンポーネント・スキャンから

@Configuration 
public class FooConfig { 

    @Bean 
    public IPing ribbonPing(IClientConfig config) { 
     return new NIWSDiscoveryPing(); 
    } 

    @Bean 
    public IRule ribbonRule(IClientConfig config) { 
     return new AvailabilityFilteringRule(); 
    } 
} 

restTemplateコールを除外されている//:

ResponseEntity<Object> responseEntity = restTemplate.getForEntity(myUrl, Object.class); 
以下

は私のコードですの

プロパティ:

spring.application.name=aggregator 
server.contextPath=/ott 
server.port = 8090 
my.url=http://microservice 
eureka.instance.leaseRenewalIntervalInSeconds=1 
eureka.instance.leaseExpirationDurationInSeconds=2 

MicroServiceコード:

@SpringBootApplication 
@EnableEurekaClient 
public class MicroServiceApplication 

プロパティ:

spring.application.name=microservice 
server.contextPath=/ott 
server.port = 9000 
eureka.instance.leaseRenewalIntervalInSeconds=1 
eureka.instance.leaseExpirationDurationInSeconds=2 

ユーレカサーバー:

@SpringBootApplication 
@EnableEurekaServer 
public class EurekaserverApplication { 

プロパティ:

server.port=8761 

eureka.server.enableSelfPreservation=false 
eureka.client.registerWithEureka=false 
eureka.client.fetchRegistry=false 

logging.level.com.netflix.eureka=OFF 
logging.level.com.netflix.discovery=OFF 

答えて

0

問題を引き起こし、このユーレカのインテリセンスが出てくるし、シャットダウンインスタンスに多くの時間を与えることです。インテリセンスは、同じボックス上で同じ名前で動作する複数のマイクロサービスでこのように動作します。

サービスが異なるボックスに配置されている場合、この問題は発生しません。

関連する問題