Spring-cloudマイクロサービスアーキテクチャ構築01-Eurekaサービス構築および高可用性構成
3932 ワード
1.Eurekaの概要
どの分散アーキテクチャでも、サービスの物理マシンアドレスを探す必要があります.サービス発見と呼ばれ、Eurekaはこのような問題を解決するコンポーネントです.Zookeeperのようなサービス登録センターコンポーネントですが、Eurekaはサービスの高可用性を保証しています.それ自体のクラスタメカニズムとサービス保護メカニズムはその核心メカニズムであり、私たちはそれに提供する便利さを提供して、サービスシステムのために完全に構築することができます.以下、Eurekaサービス側とクライアントの簡単な構築を行います.
2.Eurekaサービスの特徴
2.1. 高可用性
クラスタ環境のホット配置をサポートし、複数のノードにわたってサービスインスタンスを共有することができ、1つのノードが利用可能であればサービスの可用性を維持することができる.
2.2. ポイント対ポイント
クラスタ内の各サービスノードは、サービスインスタンスの状態を共有する.
2.3. ふかへいこう
サービスはリクエストに対して負荷分散処理を行うことができ、一般的に健康インスタンスをポーリングする方式を採用したり、サービス発見方式をカスタマイズしたりすることができる.
2.4. クライアントの柔軟性
登録センターに登録されているすべてのクライアントは、サービスが使用できない場合にサービスの使用可能なローを負担し続けるサービスリストをローカルでキャッシュする必要があります.
2.5. フォールトトレランス
Eureka登録センターは心拍数検出メカニズムを採用してサービスの利用可能な行を確保し、利用できないサービスインスタンスをタイムリーに整理する.
3.Eureka-Serverサービス側構築
注意:本プロジェクトはideaツールを採用して構築する idea自身のspring initializrを用いてプロジェクトの初期化 を行う初期化完了項目後pomファイルインポート アプリケーションを修正する.ymlファイル、 の構成を追加最後にEurekaサービスに@EnableEurekaServer注記を追加すると起動できます.
Eurekaは高可用性のサービスメカニズムを提供するため、複数のEurekaサービスインスタンスを起動し、クライアントセグメントがプロファイル内のdefaultZoneパラメータを変更すればよい.Eurekaサービス登録は、サービスポーリングによって行われます.一般的には、複数のインスタンスを起動します.client側は、1つのサービスインスタンスに登録に成功すれば、追加のサービスインスタンスに登録する必要はありません.また、Eureka自身のサービスリスト抽出メカニズムがあれば、より新しいサービスリストを同期させます.Eureka ClientがEureka Serverに登録されている秘密を深く理解することができます.
4.Eureka-Client側によるサービス登録ここでは、EurekaのClient端子としてconfig構成センターを使用します. まずmavenプロジェクトを構築し、初期化が完了した後にpom導入を行い、 プロファイルを変更します.Eurekaクライアントの構成はBootstrapでなければなりません.ymlファイルでは、プロファイルの読み取り順序に関する問題があります.Bootstrap.yml構成は、 構成が完了したら、Client起動クラスに@EnableDiscoveryClient注記を付ける必要があります. 構成が完了すると、Eureka-ServerインスタンスとEureka-Clientインスタンスがそれぞれ起動し(ここではconfig-serverの代わりに)、http://localhost:8761クライアントインスタンスがserverに登録されていることがわかります.
注意:prefer-ip-address:trueは、一般的に生産環境でtrueに設定する必要があります.理由は次のとおりです.
なぜIPアドレスに偏っているのかデフォルトでは、Eurekaはサービスを登録しようとすると、ホスト名を使用して外部に連絡を取らせます.この方法はサーバベースの環境でよく動作し、このような環境ではDNSサポートのホスト名がサービスに割り当てられる.ただし、Dockerなどのコンテナベースの配置では、コンテナはランダムに生成されたホスト名で起動し、DNSレコードはありません.eureka.instance.preferipAddressの設定量がtrueの場合、クライアント・アプリケーションはDNSレコードが存在しないため、ホスト名の場所を正しく解析できません.preferipAddressプロパティを設定するとEurekaサービスに通知され、クライアントはIPアドレスで通知したいと考えています.
本文githubコードアドレスspring-cloud基礎モジュール構築--ご指摘を歓迎します
参考ブログアドレス:Eureka ClientがEureka Serverに登録した秘密
どの分散アーキテクチャでも、サービスの物理マシンアドレスを探す必要があります.サービス発見と呼ばれ、Eurekaはこのような問題を解決するコンポーネントです.Zookeeperのようなサービス登録センターコンポーネントですが、Eurekaはサービスの高可用性を保証しています.それ自体のクラスタメカニズムとサービス保護メカニズムはその核心メカニズムであり、私たちはそれに提供する便利さを提供して、サービスシステムのために完全に構築することができます.以下、Eurekaサービス側とクライアントの簡単な構築を行います.
2.Eurekaサービスの特徴
2.1. 高可用性
クラスタ環境のホット配置をサポートし、複数のノードにわたってサービスインスタンスを共有することができ、1つのノードが利用可能であればサービスの可用性を維持することができる.
2.2. ポイント対ポイント
クラスタ内の各サービスノードは、サービスインスタンスの状態を共有する.
2.3. ふかへいこう
サービスはリクエストに対して負荷分散処理を行うことができ、一般的に健康インスタンスをポーリングする方式を採用したり、サービス発見方式をカスタマイズしたりすることができる.
2.4. クライアントの柔軟性
登録センターに登録されているすべてのクライアントは、サービスが使用できない場合にサービスの使用可能なローを負担し続けるサービスリストをローカルでキャッシュする必要があります.
2.5. フォールトトレランス
Eureka登録センターは心拍数検出メカニズムを採用してサービスの利用可能な行を確保し、利用できないサービスインスタンスをタイムリーに整理する.
3.Eureka-Serverサービス側構築
注意:本プロジェクトはideaツールを採用して構築する
org.springframework.boot
spring-boot-starter-actuator
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
server:
# Eureka
port: 8761
eureka:
instance:
# Eureka
hostname: localhost
preferIpAddress: true
server:
#
# enableSelfPreservation: false
# , ( , 60*1000)
eviction-interval-timer-in-ms: 10000
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
Eurekaは高可用性のサービスメカニズムを提供するため、複数のEurekaサービスインスタンスを起動し、クライアントセグメントがプロファイル内のdefaultZoneパラメータを変更すればよい.Eurekaサービス登録は、サービスポーリングによって行われます.一般的には、複数のインスタンスを起動します.client側は、1つのサービスインスタンスに登録に成功すれば、追加のサービスインスタンスに登録する必要はありません.また、Eureka自身のサービスリスト抽出メカニズムがあれば、より新しいサービスリストを同期させます.Eureka ClientがEureka Serverに登録されている秘密を深く理解することができます.
4.Eureka-Client側によるサービス登録
org.springframework.boot
spring-boot-starter-security
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
#
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #,http://xxxxx:8761/eureka/
# 30
# ,
registry-fetch-interval-seconds: 20
instance:
# ip
prefer-ip-address: true
# 30
lease-renewal-interval-in-seconds: 60
# , 90
lease-expiration-duration-in-seconds: 100
# instance-id: config-server
注意:prefer-ip-address:trueは、一般的に生産環境でtrueに設定する必要があります.理由は次のとおりです.
なぜIPアドレスに偏っているのかデフォルトでは、Eurekaはサービスを登録しようとすると、ホスト名を使用して外部に連絡を取らせます.この方法はサーバベースの環境でよく動作し、このような環境ではDNSサポートのホスト名がサービスに割り当てられる.ただし、Dockerなどのコンテナベースの配置では、コンテナはランダムに生成されたホスト名で起動し、DNSレコードはありません.eureka.instance.preferipAddressの設定量がtrueの場合、クライアント・アプリケーションはDNSレコードが存在しないため、ホスト名の場所を正しく解析できません.preferipAddressプロパティを設定するとEurekaサービスに通知され、クライアントはIPアドレスで通知したいと考えています.
本文githubコードアドレスspring-cloud基礎モジュール構築--ご指摘を歓迎します
参考ブログアドレス:Eureka ClientがEureka Serverに登録した秘密