まず、springcloudされているもの、どのような役割
春の雲は、一連のフレームの順序付きコレクションです。その用途は、巧みに、サービス発見、登録、流通センター、メッセージ・バス、ロードバランシング、回路遮断器、監視および他のデータのような分散システム・インフラストラクチャの開発を簡素化、春ブーツの開発の様式で行うことができる春ブーツの開発を促進しますそして、展開を開始するためのキー。
春の雲は、家族のバケット技術スタックである成分を多く含んでいます。例www.b123.com。いくつかのコンポーネントの中核を皮切りにその基礎となるどのような作品を分析し始めます。それはユーレカ、リボン、装う、Hystrix、Zuulこれらのコンポーネントです。
ユーレカ
ユーレカは、登録と発見サービスを担当するレジストリ内のマイクロサービスアーキテクチャ、です。インベントリサービスは、倉庫保管サービスは、統合サービスは、ユーレカClientコンポーネント、ユーレカサーバー内の情報サービスを登録しますユーレカクライアントのコンポーネントに責任を持って(ユーレカServerがどのポートをリッスンし、そのマシン上で、自分の中で、伝えることです) 。各サービスのマシンとポート番号が配置されている保存ユーレカServerは、レジストリを持って登録センター、です。
注文サービスもユーレカClientコンポーネントを持っている、ユーレカクライアントコンポーネントは、ユーレカサーバーを見つけるでしょう尋ねる:インベントリサービスマシンああ?どのポートああに聞きますか?サービスの倉庫?統合サービス?次に、あなたのローカルキャッシュにレジストリユーレカServerのアップから引き出されたこれらの情報を置くことができます。
要約:
ユーレカクライアント:この情報サービスはユーレカServerに登録する責任があります
ユーレカサーバー:レジストリを持って登録センターは、各サービスとポート番号マシンを保存しました
見せ掛けます
重要なメカニズムは、動的プロキシの使用である装います。
あなたがインターフェイス上@FeignClientコメントを定義した場合、すべての最初に、このインタフェースの装うは、動的プロキシを作成します。
あなたがそのインターフェイスを呼び出す場合次に、基本的にコアの中核である装うが作成された動的プロキシは、呼び出し、
装う、動的プロキシ動的にあなたがアドレス要求されたサービスを構築するために、あなたの@RequestMappingやインターフェイス上の他のノートに基づいて
最後に、このアドレスは、要求を開始し、応答を解析します
リボン
リボンは、負荷分散の役割である、それはあなたも、各マシンに循環要求に、リクエストごとにマシンを選択するのに役立ちます。リボン負荷がデフォルト古典的なラウンドロビンポーリングアルゴリズムを使用してバランスをとります。
次のようにリボンと装うとユーレカは、作業を完了するために緊密な協力です。
まずリボンは、対応するサービスレジストリにユーレカクライアントから取得しますリスニングポート番号でのマシン上で展開されているすべてのサービスを知っているだろう。
そして、あなたはマシンを選択し、デフォルトのリボンラウンドロビンアルゴリズムを使用することができます
装うが、このマシンに焦点を当て構築し、要求を開始したことになります。
Hystrix
Hystrix小さなスレッドプールの数に係合するような注文サービスは、サービス要求スレッドプールインベントリで、サービス要求を倉庫するスレッドプールで、一体サービス要求は、スレッドプールがあります。のみ、そのサービスのリクエストに応じて各スレッドプールのスレッド。
ダウングレード:各呼び出しの統合サービス、データベース内のメッセージを録音することができ、統合サービスがハングアップしているため、統合を増加し、増加成功に至らなかったユーザーの特定の数に言いました!このような統合およびその他のサービスは、あなたが手でこれらのレコードを統合することについて、追加することができ、復元されました。このプロセスは、ダウングレードと呼ばれています。
Zuul
マイクロサービスゲートウェイであるZuul、。このコンポーネントは、ネットワークのルーティングを担当しています。すべての要求は、機能のいくつかの要求でゲートウェイは、要求がバックエンドサービスに転送され、ゲートウェイにアクセスしてください。ゲートウェイの後、そのようなので、上の統一を行うことができ、ダウングレード、制限、認証および承認、セキュリティ、およびなど多くの利点が、あります。
要約:
ユーレカ:各サービスを開始するには、ユーレカクライアントサービスはユーレカサーバーに登録され、彼らは他のサービスを知っているので、ユーレカクライアントも、ユーレカサーバープルからレジストリを取るために回すことができるとき
リボン:サービス間の時間は、サービスから、ロードバランシング、複数のマシンを行うにはリボンに基づいて要求を、開始し、選択
装う:リクエストURLアドレスをステッチ、ノートと選択したマシンに応じて、ダイナミックプロキシメカニズム装うに基づいて、要求を送信します
Hystrix:リクエストが行くようにHystrixスレッドプールによって開始され、異なるサービスは、サービス問題の雪崩を避けるために、異なるサービスコールの分離を達成するために、異なるスレッドプールを取ります
Zuul:移動端末を呼び出すフロントエンド、バックエンドシステム、Zuul、対応Zuulサービスに転送要求ゲートウェイからユニファイドにゲートウェイ場合