春クラウドコンポーネント:ユーレカ

春クラウドコンポーネント:

ユーレカ:

何そのユーレカ?

ユーレカ一個のNetflixのサブモジュールであり、モジュールは、コア、ユーレカであり、二つの成分、1 EurekaServer(別項目)がある。これは、中間層のロード・バランシングとフェイルオーバーサーバ転送を達成するための位置情報サービスであり、他のServerと対話するために使用されてEurekaClient(当社のマイクロサービス)である、あなたは相互作用が非常に簡単になることができます:ちょうどサービス識別子を介してサービスを取得する必要があります。
春・クラウドとの関係は:
春のクラウドサービスの登録と発見を(あなたが飼育係を比較することができます)を実装するために開発されたNetflixのユーレカモジュールをカプセル化します。
CSの設計アーキテクチャを使用してユーレカ。サービスレジストリでサーバーのサービス登録機能、などユーレカサーバー。
そして、他のマイクロサービスシステム、ユーレカサーバーに接続して、ハートビート接続を維持するために、クライアントを使用しています。このようなシステムの保守要員は、サービスがユーレカサーバーで適切に機能している各マイクロシステムを監視することができます。SpringCloud(例えばZuulのような)他のモジュールのいくつかは、ユーレカサーバを介して他のマイクロサービスシステムに見られる、及び関連ロジックを実装することができます。
役割図:

どのように使用するには?

依存性に入社、ばねクラウドプロジェクトで:

ユーレカクライアント:

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  eureka服务端:
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

次のような構成に参加したユーレカサーバープロジェクト:
サーバー:
ポート:3000
ユーレカ:
サーバー:
有効-自己保存:偽#の自己保護メカニズムオフに
立ち退きインターバルタイマー・イン・ミリ秒:4000#の設定のクリーンアップ間隔(単位:ミリ秒デフォルト* 1000年は60)である
:インスタンス
のホスト名:localhostを

クライアント:
registerWithEureka:偽#自分自身のクライアントとして自身を登録していない
fetchRegistry:偽#は、サーバーから登録情報を取得するために必要とされていない(彼は、登録そのものを無効にされているサーバー理由)
のserviceURL:
defaultzone:HTTP :// E R E K a . i n s t a n c e . h o s t n a m e : {eureka.instance.hostname}。 {}はserver.port /ユーレカ
もちろん、すべての必要はありません、ここで私はちょうどコピーを設定するためにここに来た
、春ブートスタートアップ項目にコメントを追加:あなたがプロジェクトを開始することができます@EnableEurekaServer
/ **

  • 学生に関連するアドバイスVIPコースは、マグノリアの教師QQについて追加したい:2746251334

  • 学生のビデオにしたいAhn'Qiraj教師QQについて追加:3164703201

  • 著者:ルバニ学校-教師商鞅
    * /
    @EnableEurekaServer
    @SpringBootApplication
    パブリッククラスAppEureka {

    パブリック静的無効メイン(文字列[] args){
    SpringApplication.run(AppEureka.class)。

    }
    }
    あなたはこの写真を見る場合は、良い説明を構築します。

この警告はちょうど閉じあなたは自己保護メカニズムで彼を置くと言う
ユーレカクライアント構成を:
サーバー:
ポート:6000
ユーレカ:
クライアント:
serviceURLの:
defaultzone:HTTP:// localhostを:3000 /ユーレカ/登録アドレス#eurekaサーバーが参照を提供しますサーバーの構成このパスの
インスタンス:

instance-id: power-1 #此实例注册到eureka服务端的唯一的实例ID 
prefer-ip-address: true #是否显示IP地址
leaseRenewalIntervalInSeconds: 10 #eureka客户需要多长时间发送心跳给eureka服务器,表明它仍然活着,默认为30 秒 (与下面配置的单位都是秒)
leaseExpirationDurationInSeconds: 30 #Eureka服务器在接收到实例的最后一次发出的心跳后,需要等待多久才可以将此实例删除,默认为90秒

春:
アプリケーション:
名前:サーバーの電源#このインスタンスは、ネームサーバユーレカに登録されているが
、その後、クライアントの春ブート中のプロジェクトに注釈の追加を開始:あなたが直接私たちのスクリーンショットのレンダリングを見ていない、ここでプロジェクトを開始することができます@EnableEurekaClient:

ここでは、サーバの電源の名前を見ることができる私たちのユーレカへの電力-1登録サービスのためのID(それが大文字になります図)は、この点より上に来た、シンプルなユーレカは、より良い設定されています。

クラスタユーレカ:
ユーレカ原則クラスタ
サービスは、ユーレカサーバー登録情報は、サービスコンシューマがサービスレジストリを取得するには、サービスプロバイダ、サービスプロバイダのアドレスを呼び出すようにすると、他のユーレカサーバに同期して、意志され、ユーレカの登録後に開始しますローカルにキャッシュされたサービスプロバイダのアドレス、お電話次回は、ローカルキャッシュから直接取得し、コールを完了。
ユーレカのクラスタ構成
、我々はそれを持って宣言しなければならないものを私達はちょうどユーレカServerはので、他のユーレカサーバー同期サーバに情報を登録されることを知っていますか?
私たちが3ユーレカServerの図を持っていることを前提としています。

今、サーバークラスタ環境では、それを宣言したどのように?私たちは、マップを見て:

少し抽象的に見えるかもしれ、私たちは特定の設定を見て
サーバー:
ポート:3000
ユーレカ:
サーバー:
有効-自己保存:偽
立ち退きインターバル・イン・タイマー-MS:4000
インスタンス:
ホスト名:eureka3000.com

クライアント:
registerWithEureka:偽
fetchRegistry:偽
のserviceURL:
defaultzone:http://eureka3001.com:3001/eureka,http://eureka3002.com:3002/eureka
ここで私たちは、ドメイン名(ない特別な条件のマッピングを行っているクラスターの理解を容易にします私は3台のノートPCの使用はその後、簡単にあなたのhostsファイル(Cでwin10ディレクトリ変更するには、ここにそれを言及し、どのようにドメイン名のマッピング用として)...テストするためにサポート:\ WINDOWS \ System32に\ドライバ \ etcに、その後、他のシステムを自分のBaiduの上に置きます)私は私のhostsファイルを同封:
127.0.0.1 eureka3000.com
127.0.0.1 eureka3001.com
127.0.0.1 eureka3002.com

私たちは戻っ対象に、我々は判明ポイントでクラスタ構成とモノマーがサービスに自分自身を登録するが、今別のサービス本体に登録されていることを発見し
、それを自分自身を登録しない理由として?戻る私たちが言った、トップ、その登録情報を他のサーバーと同期させるため、他の2台のサーバーは、この局サーバに設定されますので、ここで私たちは、自分自身を登録する必要はありませんユーレカのサーバーに。(周りのビットがあるかもしれない、あなただけのクラスタ環境を行く、またはそれを自分で設定表を参照することができ、他の二つのユーレカの構成は限り注意が上記の他のサービスに登録されているように送られていない、これに似ていますちょうど罰金)
:構成された3つのユーレカの後、すべてはあなたが効果を見ることができますクリックして起動し
、もちろん、私たちは、サーバを設定するためだけにここにいる、そしてクライアントを設定する方法?いくつかの単語の男は、コードに言った:
クライアント:
serviceURLの:
defaultzone:HTTP:// localhostを:3000 /ユーレカ/、HTTP://eureka3001.com:3001 /ユーレカ、HTTP://eureka3002.com:3002 /ユーレカ
ここに私たち変更する部分のみを傍受。つまり、3ユーレカ登録したアドレスを記述することですが、私たちは、サーバーをEUREKA登録情報が同期されるように彼の3つのレジスタを代表して、ここではそれだけで一度登録する必要がありますが、なぜ、上記のそのアドレスに登録することが判明しました3人はそれに対処書きます。これであなたは、高可用性構成を行うことができますので:アナロジーを3台のサーバーがあります。しかし、突然、まだ懸念している他の言葉で、私たちのサービスに登録することができ、一つ下の、まだ生きている他の二つになり、限り、あなたはサービスにサインアップすることができますので、サービスはまた、内蔵されたとして、ここではそれを理解する必要があります。
ここで作られた、単一の前に違いはありませんが、サービスは、あなただけの別のユーレカサーバー上のユーレカサーバーがサービスを持っている上の情報を登録していないレンダリング。

CAP定理が意味します:

1998年、カリフォルニア大学のコンピュータ科学者は、エリック・ブリュワーは、分散システムは、3つの指標を持って提案しました。
一貫性-整合性
可用性-可用性
パーティション公差-パーティションのフォールトトレランス
、彼らは最初の文字Cは、A、P
エリック・ブリュワーは、同時に3つの指標は不可能と言いました。この結論は、CAP定理と呼ばれています。
分割耐性
と呼ばれる中国の「パーティションのフォールトトレランス。」
ほとんどの分散システムは、複数のサブネットワークに分散されています。各サブネットワークは、ゾーン(パーティション)と呼ばれています。フォールト・トレラント・パーティションの意味、範囲の通信が失敗することがあります。例えば、ローカル上のサーバは、二つの領域であるフィールド上の他のサーバ(場合によっては他の地方、さらには外国の)は、それらの間で通信することができません。

上記の図、S1、およびS2は、二つのサーバの断面です。S1はS2にメッセージを送信し、S2が受信されなくてもよいです。システム設計、それは考慮に入れ、このような状況を取る必要があります。
一般的には、フォールトトレラントパーティションは、避けることができない、それは常にtrue P-CAPを考えることができます。CAP定理は、CとAの残りの部分を同時に行うことができないことを教えてくれる。

一貫
一貫中国は「一貫性」と呼ば あなたは、書き込み操作の後に読み、意味、値を返す必要があります。例えば、レコードがV0である、S1ユーザがV1を読み取るために、書き込み動作を開始します。

次に、ユーザは、読み出し動作V1を取得します。これは、一貫性と呼ばれています。

問題は、値が変化しないので、ユーザはS2、G2に読み出し動作を開始する可能性があるということであるので、リターンはV0であるので、矛盾S1及びS2は、一貫性を満たしていない操作を、読み取り

同じ値S2とS1を返すので、私たちは時に書き込み操作S1を実行する必要があり、S2へS1もG2を求めるメッセージもV1なっ送信できるようにするためには、

G2に読み出し動作を開始するユーザーこのように、あなたはV1を得ることができます

可用性
可用性中国は限りユーザの要求が受信されると、サーバーが応答を与えられなければならないことを意味し、「可用性」と呼ばれます。
ユーザは、読み出し動作のS1またはS2を開始するために選択することができます。限り、要求が受信されると、それは最終的にそれがV0またはV1で、ユーザーに通知する必要があり、または可用性を満たしていないサーバー、どんなに。

一貫性と矛盾するの可用性
一貫性と可用性は、なぜ同時に設定することはできませんか?通信障害(フォールトトレラントパーティションが表示されます)があるかもしれないので答えは、簡単です。
一貫S2を確保する場合には、S1は、操作がS2をロックし、書き込み、読み出しおよび書き込みをしなければなりません。データのみの同期後、再オープンをするために読み書きします。ロック時には、S2は、読み取りおよび書き込みができない、何の可用性はありませんではありません。
あなたはS2の可用性を確保する場合は、S2がロックすることができないので、一貫性が確立されていないバインドされています。
要約すると、S2の一貫性と可用性を同時に行うことはできません。あなただけのターゲット・システム設計を選択することができます。一貫性の追求場合は、我々はすべてのノードの可用性を保証するものではありません。すべてのノードの可用性を追求するならば、それは一貫性を行うことはできません。

ユーレカコントラスト飼育係:
デザインの飼育係は、CPの原則に従って、その一貫性は、飼育係は、他のノードとマスターノードは、残りのノードがされる再リーダー選挙の接触を失った、ネットワーク障害の状況になり、質問は、長すぎるための選挙リーダー:30〜120S、飼育係とクラスタ全体では、ネットワーク環境に応じて、クラウド・デプロイメント環境の下で、麻痺状態のレジストラにつながっ選挙の際、選挙の時に利用できない、マスターノードクラスタの飼育係の損失サービスは、最終的に回復しますが、起こって物事の大きい確率ですが、長い時間が長期選挙登録サービスにつながることが容認されることはありません使用できません。
デザインのユーレカは原則AP、すなわち可用性に従います。クライアントへユーレカ各ノード(サービス)、何マスタースレーブ点が存在しない、いくつかのノード等しい正常な動作に影響を及ぼさないであろうダウンし、残りのノード(サービス)がまだ登録および照会サービスを提供することができるが、ユーレカにユーレカ登録または接続が失敗し、それが自動的に限り、ユーレカがまだあるとして、登録することができるようになります、つまり、他のノードに切り替えます発見(可用性を確保するために)使用することができますが、クエリ情報は、最新の(保証なし強い整合性)ではありません:さらに、ユーレカだけでなく、自己保護機構は、15分ノードは、通常のハートビートではない85%以上であれば、ユーレカクライアントとネットワーク障害のレジストリと考え、状況について表示されます
1:ユーレカは、もはやリストからハートビート期限切れの登録サービスを受けていない長い時間のためにあるため削除しません。
2:ユーレカまだ新しいサービスのクエリ要求と登録を受信することができるが、(すなわち、現在のノードが利用可能であることを保証するために)他のノードに同期されません
3:ネットワークが安定している場合、新規登録情報の現在のインスタンスは、他のノードと同期します

おすすめ

転載: blog.csdn.net/weixin_42840066/article/details/90106749