ネット分散システムファイブ:マイクロサービスのアーキテクチャ

ネット分散システムファイブ:マイクロサービスのアーキテクチャ

   なぜなら仕事のより忙しく、フレームワークをアップグレードするためのフレームワークとデザイン時に遭遇した問題が記録されます。

 

I.背景&問題

  フレームワークの前に分散SOAベースのデザインのアイデアのためのフレームワークです。各アプリケーションは、サービスを利用する方法によって提供されるサービスとの間のRPC通信は、.NET WCFベースの通信プラットフォームの特定の実装を呼び出しています。フレーム2の問題があります:

  図1に示すように、高い同時実行処理能力の欠如。高い同時要求は、複数のサービスの保留中のプロセス、システム全体のボトルネックを使用する場合。

  図2は、携帯端末アプリケーションの広い範囲と一緒に、サービスは、可撓性支持APPのアプリケーションにすることはできません。

  3、継続的な統合システムは、うまく配置問題を展開するにはあまりにも面倒です。

  アップグレードのフレームワークと、上記の問題を踏まえ、現在主流の考え方アーキテクチャ、思考のサービスシステムで、「マイクロ・サービスのアーキテクチャ」です。


  

第二に、マイクロサービスのアーキテクチャ

  マイクロサービスアーキテクチャ(Microservicesアーキテクチャ)システムは、一般的にアプリケーション・サービスとして知られている、複数のサービスに分割されます。シングル、特定のビジネス・アプリケーション、独立した保守サービス、複数のアプリケーション構築されたシステムを展開するためのサポートを達成するためのアプリケーションサービス。通信フレームを介した軽量なアプリケーションサービスの間で、異なる技術やインターネットで実装されたアプリケーションサービスをサポートしています。マイクロサービスアーキテクチャSOAのアーキテクチャ設計は別の実装です。マイクロサービスアーキテクチャには、以下の特徴があります。

 1、マイクロサービスのアーキテクチャの利点

  (1)スケールのアプリケーションサービスの同時処理を強化

  (2)独立したメンテナンスを展開するアプリケーションサービスを、反復的な開発は、アップグレードの継続的な展開を助長しています

  (3)柔軟なアーキテクチャは、様々な技術をサポート

  (4)アプリケーション・サービスの高可用性の賛成で

 図2に示すように、マイクロサービスアーキテクチャ不十分

  (1)システムの設計上の特定の要件、特に解像技術アプリケーション・サービス・インターフェースがあります。

  (2)改善されたシステムの複雑さをもたらします

  (3)データの整合機構システムを確保する必要性

  (4)システムの保守要件とコストにつながります

  システムはマイクロサービスアーキテクチャを使用して構築する必要があるかどうか、プロジェクトの要件によって決定されます。マイクロサービスアーキテクチャ設計システム構築、チームメンバーの能力は、特に設計能力、伝統的な要件よりも高くなっています。


  

第三に、フレームワークの設計原理

  1.スケーラブル:サポートは、システムの機能、オンデマンドの展開サーバーのリソースを変更しません。

  2、高可用性:サポートは、高可用性システムの要件を満たすために、展開デュアルホットスタンバイメカニズムを配布しました。

  3、高い同時実行:アプリケーションサービス機能の迅速な展開のためのサポートは、同時要求を満たすために、システムの能力を高めます。

  4、セキュリティ:統一された安全なアクセス認証によるアクセス、スケジュールされたバックアップと高いフォールトトレランスを介して、データセキュリティ、暗号化と復号化を介して、情報セキュリティ、署名送信、単離およびネットワークファイアウォールを介してネットワークセキュリティ。

  5.一貫性:最後のポリシーデータの一貫性。


 

第四に、全体的なデザインのフレームワーク

    

                                                                                図1 - システムアーキテクチャの概略図

  示されるように、システム・アーキテクチャは、SOA設計に基づいて、マイクロウェイサービスアーキテクチャを設計し、構築されました。このシステムは、データとの分離を示しています。Webベースのシステムのプレゼントは、統合およびカスタム開発のためのフロントエンドのUIフレームワークの様々なサポートするために実装された、アプリケーションサービスによって提供されたデータは、「ゲートウェイAPI」を使用することによって統一提供します。アーキテクチャは、ネットワーク層、アプリケーション層の負荷分散ミドルウェアなど、高可用性と同時処理能力を達成するためにサポートしています。構築ミドルウェアを外し、いくつかの基本的な共通の特徴のアーキテクチャ。

  1、ゲートウェイAPI:アプリケーションサービスの統一ゲートウェイAPIを介してサービスを提供します。ゲートウェイAPIは、httpプロトコルに基づいており、統一されたサービス・インターフェースを提供するために、安らかな方法は、インターフェースの通信プロトコルは、システムが異なるクライアントを満たすために軽量の通信方式に機能を提供しサポートすることに合意しました。ゲートウェイAPI統一されたデータへのアクセス制御は、このような電流制限機能などのルーティングアプリケーションサービス、。

  図2に示すように、メッセージ・プラットフォームは:アプリケーションの責任サービスの間で同期情報を更新し、分散トランザクションコール更新情報の元のシステムアーキテクチャは、最終的にデータ、アプリケーションサービスとの間の結合を減少させる、非同期処理を介してメッセージングパブリッシュ/サブスクライブするために一貫性を確保するように調整します度と強い依存性。高並行性、キャッシュされた役割を取得します。

  図3に示すように、サービス監視センタ登録:登録を発行する責任登録アプリケーションサービス、アプリケーションサービスインタフェースの動作を監視しながら、動的制御アプリケーションサービスのサポートは、要求、及び「分散型」のサービス制御を受けます。登録サービス・コンポーネントの実装、監視、およびその他の機能。

  4.認証センター:統一認証基盤へのアクセスを担当。ユーザー・アクセスは、パスワードと権限によって制御されています。ページを達成しながら、機能、管理機能を制限し、安全なアクセスのための「ゲートウェイAPI」と組み合わせます。

  図5に示すように、ログ管理システム:非同期モードを介して「情報プラットフォーム」をログに記録する情報を転送するシステムロギング、サービスインターフェースおよびコンポーネント、ビジネス・コードを担当し、ログ管理システム「は、メッセージングプラットフォームを」ログ情報記憶処理をサブスクライブ。ログ管理を提供しながら、

  6、キャッシュセンター:統合キャッシュサービスを提供するためのRedisベースの分散メモリ型データベース、統一されたキャッシュ・アーキテクチャ建てセンター、。

   

第五に、ソフトウェアアーキテクチャの設計

        

                                                                                 図の2-ソフトウェアアーキテクチャ図。

  示されるように、システムアーキテクチャの実施形態のマイクロサービスアーキテクチャの開発、垂直断面の独立開発は4つのレベル、それぞれのWeb層、レイヤサービスインターフェイスにトップダウンから、責任のレベルの分割に応じて、各アプリケーションサービスから観察されました、ビジネスロジックとデータアクセス層。サービスインタフェース層は標準化されたサービス・インターフェースとプレゼンテーション層ドッキング提供する主な原因であり、Webプレゼンテーション層が直接ユーザに面し、システムの機能発現のための主な原因である主要なビジネスロジック層ビジネスロジックアプリケーションを実装し、アプリケーション・サービスは、コア部分であり、データアクセス層は、データの永続性の原因であります、ビジネスロジック層を支持します。インターフェースを介して分離種々のレベルの間、依存および影響を低減するために、継続的な保守を展開助けます。

  アプリケーション統合サービスは、開発が完了した後に展開します。ウェブ層は、サービスの展開、およびサービスの登録インターフェースリリース用のアプリケーションを構築することで合意、残りのレベルに応じてWebアプリケーションコンテナに統合されます。

VI結論

  インフラストラクチャは、一般的にこのように設計するだけでなく、ドッキングウィンドウコンテナ技術と組み合わせた弾性クラウドプラットフォームリソース、考えることができ、展開の実装を検討する必要があります。

  フォローアップし、その後徐々に関連する基本的なコンポーネントの設計と実装の原則を紹介します。技術的なフレームワークは、問題を解決するよりも重要である、デザインが需要を頼り、需要実際のビジネス・シナリオの源。

 

 

作者:刘蔡涛
出处:http://www.cnblogs.com/Andon_liu 
关于作者:专注于微软平台项目架构、管理。熟悉设计模式、领域驱动、架构设计、敏捷开发和项目管理。现主要从事ASP.NET MVC、WCF/Web API、SOA、MSSQL、redis方面的项目开发、架构、管理工作。 如有问题或建议,请一起学习讨论! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 
如有问题,可以邮件:[email protected] 联系我,谢谢。


微信号: 

おすすめ

転載: blog.csdn.net/cxu123321/article/details/93486031