春のクラウドサービスファミリーバケツマイクロ主要なコンポーネントと簡単な説明

マイクロイントロ

マイクロサービスは、最近2年間は非常に火災である概念です。ほとんどの時間、下のメイクの簡単な概要と導入に追いつくためにペースを感じることはありません学びます。

マイクロサービスとは何ですか?要するに、この開発アプローチのマイクロサービスアーキテクチャスタイルは、スタンドアローンのアプリケーションシステムを開発するための小さなサービス道のセットの開発です。各小サービス独自のプロセスで実行、および、そのような軽量へのHTTP APIのリソースに対して互いに頻繁に使用されるメカニズムと通信します。これらのサービスは、ビジネス機能を中心に構築し、独立した展開のための自動展開機構を介して。これらのマイクロサービスは、異なる言語で記述することができ、かつ異なるデータ・ストレージ・テクノロジーを使用することができます。我々は最低限の操作を行い、濃縮これらのマイクロ管理サービス。

マイクロサービスは、一般に、注文管理、顧客管理、および上のように、特定の機能を完了しています。各サービスは、超小型六角形のアプリケーションで独自のビジネスロジックやアダプタを持っています。いくつかのマイクロサービスAPIは、他のマイクロサービスやアプリケーションのクライアントにリリースされます。その他のマイクロサービスは、完全なWeb UIは、ランタイムは、各インスタンスは、クラウドやVMドッカーコンテナであってもよいです。

例えば以下のように、上述したシステムは、分解することができます。

ファイル

一般に、マイクロサービスの対象が元の小さな独立したシステムサービスの複数に分割され、これらのサービスは、HTTPベースのRESTful APIを介して、小さな独立したプロセスでコラボレーションサービス間の通信を実行している、および各サービスは、独自のデータストレージ、事業開発、自動テスト、および独立したメカニズムの展開を維持しています。

第二に、マイクロサービスの特徴

図1に示すように、各マイクロサービスは、独自のプロセスでは、独立して動作することができます。

図2に示すように、独立して共同でシステム全体を構築する動作マイクロサービスの一連。

図3は、それぞれが独立した事業展開として、マイクロサービスは、一般的になど、特定の機能を完成さ:注文管理、顧客管理。

図4に示すように、発呼またはREST API RPCの方法によって、例えば、いくつかの軽量な通信機構を介してマイクロサービス間の通信。

第三に、マイクロサービスの長所と短所

1、開発や保守が容易

2、高速な起動

3、一部変更が簡単に展開します

4、無制限の技術スタック

5、オンデマンドでスケール

6、DevOpsチーム

第四に、一般的なマイクロサービスフレームワーク

1、サービスガバナンスのフレームワーク

(1)ダボ(http://dubbo.io/)、Dubbox(ダボの详细拡張)

ファイル

最近良いニュースは、ほとんどダボがそれの運転・保守を再開するということです!

ユーレカの(2)のNetflix、Apacheの領事等が挙げられます。

ネットフリックスの春クラウドユーレカさらにパッケージ。

図2に示すように、分散構成管理

(1)BaiduのDisconf

ファイル

(2)360は、qconf

(3)スプリングクラウドアセンブリ構成

(3)淘宝網ダイヤモンド

3、バッチジョブのフレームワーク

(1)スプリングクラウドコンポーネントタスク

(2)LTS

五、春の雲の家族のバケツアセンブリ

春の雲の家族のバケットを導入する前に、ネットフリックスを導入する最初の、ネットフリックスは非常に偉大な会社は、春のクラウドプロジェクトで重要な役割を占めている、Netflixがなどユーレカ、Hystrix、Zuul、Archaius、を含む、多くを提供しています、コンポーネント、マイクロアーキテクチャに不可欠なサービス、春という名前のコンポーネントのシリーズのパッケージにはNetflixに基づいて:など春の雲ユーレカ、春の雲Hystrix、春の雲Zuul、別々に導入された個々のコンポーネント以下:

(1)春の雲ユーレカ

どのように我々はマイクロサービスの後にそれを呼び出すために使用される、マイクロサービスや各種通話のAPIインタフェースの性質、そしてどのように我々はこれらのインターフェイスで、その結果、これらのインタフェースを作るのですか?何を管理する方法?

答えは春の雲ユーレカで、私たちは飼育係を研究している場合、APIインタフェースは春クラウドユーレカ、発見に登録されたサービスを担当するユーレカに登録、それはうまくほとんど、ユーレカの役割と飼育係の役割を理解することができる定義所有することができますサービスレジストリ、サービスプロバイダ、サービスコンシューマ:サービスの登録と発見があり、あってユーレカシステムを構成します。

ファイル

上図は、(インターネットからの写真を)説明します。

図1に示すように、クラスタのコピーから構築二つの主要なサービス・レジストリユーレカサービスレジストリ。

2、その後、サービスプロバイダの中央登録、更新、オフラインサービスに登録。

3、サービス消費者ユーレカレジストリは、ローカルでのサービスとメンテナンスのリストに私を得た(もされ、クライアントモードで見つけ反映させる仕組み!)。

4、その後、ユーレカサービスレジストリから取得したサービスのリストに基づいてサービスを利用するためのサービスコンシューマーサービス・プロバイダーを選択します。

(2)春の雲リボン

春クラウドユーレカでは、サービス消費者サービス情報サービスの生産を取得する方法を、どこ登録するには、サービスを登録する方法について説明しますが、唯一のユーレカ・メンテナンス・サービスの生産、登録センター間の関係、3人のサービス消費者、春クラウドリボンを達成するために、生産者が提供する実際の消費者サービスコールデータサービス。

(1)で述べた消費者サービスはローカルで見つかったサービスセンターとメンテナンスモード登録生産者のリストからサービスを取得するためのサービスで、これはクライアントサービスの消費者が適切なサービスへのアクセス・ノードのプロデューサーを選択する方法ですこのプロセスによって提供されたデータは、春クラウドリボンが完了し、適切なノードを選択することです。

結果として春クラウドリボンクライアントのロードバランサ。

(3)春の雲装います

上記(1)、(2)私たちは、サービスの呼び出し演算子登録発見とサービスを実現するための最も簡単な方法を使用している、特定のリボンコールサービスを使用する場合は、リボンがまだいくつかの複合体を持っているように感じることができますしたがって、春クラウド装うがされて入ってきました。

春の雲装う文が装うが、インターフェースや注釈を作成する使いやすいWebサービス・クライアントを書いて作るWebサービスクライアントです、それは装うJAX-RS注釈やメモなどのプラグイン可能な注釈をサポートしています、装いますまた、プラグイン可能なエンコーダとデコーダをサポートし、春の雲がデフォルトHttpMessageConvertersを使用してSpring MVCの、春のWeb上の解説を追加し、春のクラウド統合リボンとエウレカは、負荷分散HTTPクライアント装うを提供します。

春の雲装うの外観になり、簡単にユーレカとリボンの使用:としてシンプルに理解することができます。

(4)春クラウドHystrix

私たちは、(1)、(2)、(3)ノウハウ中ユーレカの使用は、通話サービスのバランスを取るリボン負荷を使用して、サービスの登録と発見したが、また装うの使用は、我々のコードを簡素化することができます知っていますで。しかし、これらはマイクロサービスアーキテクチャの高可用性を実現するのに十分ではなかったです。

例:サービスに障害が発生したとき、サービス、呼び出し元が、サービスに障害が発生した知らない要求が増加し続ける場合は、この時点でコールを入れて、バックログは、証明書利用者を待って終わる対応するタスクを形成することができなかった、そして最終的につながる彼らの麻痺サービス。

まさにこのような状況、継続的なアクセスサービスを防止するための障害を解決するために、春の雲Hystrix。Hystrixの意味は次のとおりです。サーキットブレーカーは、回路ブレーカ自体は電線がショートしている過負荷電流を防止し、スイッチング素子、私たちの家族を保護するための回路であり、回路ブレーカは、速やかに防止し、電気的な故障に切り替えることができます過負荷、発熱、さらには火災やその他の深刻な影響が発生しました。

(5)春クラウドコンフィグ

マイクロサービスについては、さまざまなサービスの構成管理は、それが比較的簡単である多くの時間ではなく、一緒にマイクロサービスノードの数十万人は、サービスの構成管理が複雑になるだろうとき。

統合管理、リアルタイムの更新を容易にするために、マルチサービス、サービスプロファイルの膨大な数の分散システムは、ので、それらは、分散構成の中心的なコンポーネントを必要とします。春クラウドで、メモリ構成サービスのコンフィギュレーションサービス(すなわち、局所)をサポートする分散構成スプリングクラウド構成の中心的なコンポーネントがあり、また、リモートのGitリポジトリに支持されています。Cpringクラウドコンフィグコンポーネントでは、2つの役割、1コンフィグサーバ、そして第二に、コンフィグクライアント。

保管場所、構成プロパティの保存コンフィグサーバ読み取るためのGitリポジトリ、SVNリポジトリ、ローカルファイル、コンフィグクライアントサービスのプロパティがあります。

ファイル

(6)春クラウドZuul

外部アプリケーションのマルチ環境の設定とバージョン管理を実現春クラウドコンフィグにより、リボンまたは装う消費とロードバランシングを使用してサービス間のサービスを実装し、我々はサービスレジストリおよびサービスの登録と発見を実現ユーレカに春クラウドNetflixのを使用します。マイクロサービスアーキテクチャの普及に異常な個々のサービスを避けるために、資金メカニズムHystrixオフの使用によって引き起こされるサービスより堅牢なクラスタ障害を作るために。

ファイル

最初は、このアーキテクチャの必要性は、いくつかのことや欠点を行うためにということです。

1、まず第一に、ステートレスなサービス機能を破壊します。外部サービスの安全性を確保するために、我々はサービスのアクセス制御の権限、およびオープンサービスアクセス制御メカニズムを実装する必要があり、ほとんどの当面の問題をもたらすオープンサービス、全体のビジネスロジックの汚染を介して実行するサービスの破壊でありますステートレスREST API機能をクラスタ化します。具体的な開発およびビューのテストの点からは、仕事で、実際のビジネス・ロジックを考慮するだけでなく、プロセスを制御する必要があるに加えて、アクセスに追加のインタフェースを継続することができます。

図2に示すように、第二に、直接再利用既存のインターフェイスにすることはできません。我々は、外部サービスへのアクセスを実現するために、クラスタ内のインターフェイスの一部への訪問のために必要な場合には、我々は、元のインターフェイスにアクセス制御検証ロジックを増大させることによって達成さや、コールに直接ではなく、再利用既存のインタフェースをエージェントを追加する必要があります。上記の質問に似た顔、どのように我々はそれを解決するのですか?サービングゲートウェイ:問題の次の記事を入力してください!

上記のこれらの問題を解決するために、私たちは私たちのサービスユニットから引き出されたようなものを制御する権限を必要とし、これらの論理的な場所のための最高の場所は、外部からのアクセスの最前線であり、我々はより強力なイコライザーローダを必要としますサービス・ゲートウェイ:それが将来的には、この資料に記載されています。

サービスゲートウェイはマイクロサービスアーキテクチャ不可欠な部分です。REST APIは、サービスルーティング、ロードバランシング機能を有することに加えて、それはまた、アクセス制御および他の機能を有し、統一されたゲートウェイシステムを提供することによってプロセスを提供します。Zuul春クラウドネットフリックスは、体がより多くのクラスタ化されたサービスを持つことができるように、そのような役割としての権限は、サービスレベルのルーティング非ビジネスロジックにこれらの重いコンテンツの移動を制御する一方で、フロントドアのマイクロサービスアーキテクチャのための保護を提供する役割を務めています高い再利用性とテスト容易性。

(7)春の雲バス

(5)春クラウドConfigで、我々は知っている設定ファイルはコンフィグクライアントで読み取り、Gitのコンフィグサーバや他の場所に保存することができますが、我々は、プロファイルを離すと、当社のコンフィギュレーション・ファイルは、同じとなっていることができませんどのように何を更新する時間を変更するには?

コンフィグクライアントで再見て再取得する最も簡単な方法の1つが、春の雲は、あなたがこれをやらないであろう、春の雲バスは、私たちは、サービスを停止せずに運用更新たちのコンフィギュレーションを提供することができます。

春の雲バス公式の意味:メッセージバス。

もちろん、動的更新サービスの構成は、他の多くの用途があり、唯一の有益なメッセージバスです。

ファイル

VIの概要

以上より、ばねクラウド成分、唾液の上部を導入し、その後、それは概ね一定の理解を持っているが、はるかに比べて各構成要素の機能は、ここで、上述したファンクションポイントのそれぞれの他の多くの構成要素が存在するなければなりませんそんなにマイクロサービスの概念は怖がってきた、ドアにあなたを取ることを望んで紹介。

どのように一緒に学ぶために、空き情報がありませんか?

ファイル

ブログ記事複数のプラットフォームからこの記事OpenWriteリリース!

おすすめ

転載: juejin.im/post/5de0c6f7e51d457a2e2a9d52