SpringCloud Eureka(一)

3849 ワード

サービスガバナンスSpring Cloud Eureka
サービスガバナンスは、マイクロサービスアーキテクチャの中で最も核心的で基礎的なモジュールであり、主に各マイクロサービスインスタンスの自動化登録と発見を実現するために使用されます.Spring Cloud EurekaはSpring Cloud Netflixマイクロサービスキットの一部であり、Netflix Eurekaに基づいて二次パッケージ化され、主にマイクロサービスアーキテクチャにおけるサービスガバナンス機能の完成を担当している.
  • サービス登録サービスガバナンスフレームワークでは、通常、登録センターが構築され、各サービスユニットは登録センターに自分が提供したサービスを登録し、ポート、バージョン番号、通信プロトコルなどの付加情報を登録センターに通知し、登録センターはサービス名によってサービスリストを分類して組織する.サービス登録センターは、リスト内のサービスが利用可能かどうかを心拍数で監視する必要があります.使用できない場合は、サービスリストから削除し、障害サービスを排除する役割を果たします.
  • サービスは、サービスガバナンスフレームワークの下で、サービス間の呼び出しは、特定のインスタンスのアドレスを指定することによって実現されるのではなく、サービス名に呼び出しを要求することによって実現されることを発見した.したがって、サービス呼び出し側は、サービスプロバイダインタフェースを呼び出す際に、サービスインスタンスの具体的な位置を知らず、サービス呼び出し側はサービス登録センターにサービスを問い合わせ、すべてのサービスインスタンスリストを取得し、具体的なサービスインスタンスへのアクセスを実現する必要がある.

  • 1.サービス登録センターの構築(Eurekaサービス側)
    1.1サービス登録センターの構築
  • Spring Bootエンジニアリングの作成
  • 追加依存:spring-cloud-starter-eureka-server
  • @EnableEurekaServerを使用してサービス登録センター
  • を開く.
  • サービス登録センター
  • の構成
    1.2サービス登録センターの構成
    name
    description
    value
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.instance.hostname
    ホスト名
    -
    eureka.client.register-with-eureka
    登録センターに自分を登録するかどうか
    false
    eureka.client.fetch-registry
    サービスを取得する必要があるかどうか
    false
    eureka.client.service-url.defaultZone
    サービス登録センターアドレス
    http://\({eureka.instance.hostname}:\){server.port}/eureka/
    2.登録サービスプロバイダ(Eurekaクライアント)
    2.1サービスプロバイダ登録
  • Spring Bootエンジニアリングの作成
  • 依存性の追加:spring-cloud-starter-eureka-client
  • @EnableDiscoveryClientを使用してdiscovery client
  • をアクティブ化
  • サービスプロバイダ
  • の構成
    2.2サービスプロバイダ構成
    name
    description
    value
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.client.service-url.defaultZone
    サービス登録センターアドレス
    -
    3.登録サービス消費者(Eurekaクライアント)
    3.1サービス消費者登録
  • Spring Bootエンジニアリングの作成
  • 追加依存:spring-cloud-starter-eureka-client,spring-cloud-starter-ribbon
  • @EnableDiscoveryClientを使用してdiscovery clientをアクティブ化し、プライマリクラスにRestTemplateのSpring Beanインスタンスを作成し、@LoadBalanced注記によりクライアント負荷等化
  • をオンにする.
  • サービスプロバイダ
  • の構成
    3.2サービス消費者構成
    name
    description
    value
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.client.service-url.defaultZone
    サービス登録センターアドレス
    -
    4.高可用性サービス登録センター
    分散環境では、障害が発生した場合を十分に考慮する必要があるため、本番環境では各コンポーネントを高可用性に配置する必要があります.サービスセンターでも同様です.Eurekaのサービスガバナンス設計では、すべてのノードがサービスプロバイダであり、サービス消費者であり、サービス登録センターも例外ではない.Eureka Serverの高可用性は、実際には自分をサービスとして他のサービス登録センターに登録し、互いに登録する登録センターを形成し、サービスリストの相互同期を実現し、高可用性効果を達成することである.
    4.1高可用性サービス登録センターの構成
    name
    description
    value
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.instance.hostname
    ホスト名
    -
    eureka.client.service-url.defaultZone
    サービス登録センターアドレス
    その他のサービス登録センターアドレス:url 2,url 3...
    4.2サービスプロバイダの構成
    name
    description
    value
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.client.service-url.defaultZone
    サービス登録センターアドレス
    その他のサービス登録センターの住所:url 1、url 2、url 3...
    附共通の構成
    name
    description
    default
    spring.application.name
    サービス名
    -
    server.port
    ポート
    -
    eureka.instance.hostname
    ホスト名
    -
    eureka.instance.lease-renewal-interval-in-seconds
    サービス継続タスクの呼び出し間隔
    30
    eureka.instance.lease-expiration-duration-in-seconds
    サービス失効時間
    90
    eureka.client.register-with-eureka
    登録センターに自分を登録するかどうか
    true
    eureka.client.fetch-registry
    サービスを取得する必要があるかどうか
    true
    eureka.client.service-url.defaultZone
    Eureka serverパーティションアドレス
    -
    eureka.server.enable-self-preservation
    保護メカニズムをオンにするかどうか
    -