分散型の高可用性アーキテクチャとマイクロアーキテクチャのサービスをSOAベースの、インターネットは、今日の繁栄の企業システム開発のアーキテクチャのオプションです。コア思考、提案両側セグメント及びシステムの拡張では、システムは、高可用性サービスとクラウドサービス系エラストマービルド間の通信のための特定の手段を用いて、異なるサービス機能モジュールに応じて分割されます分散ソリューション。
しかし、それらの間の違いは、特にクラウドサービスと組み合わせたサービスと深さの使用に反映され、類似点より以上であってもよいです。実際には、マイクロアーキテクチャのサービスもはるかに大きな規模SOA分散システムを形成するために一緒に他のインターネットミドルウェアと組み合わせることができます。本論文では、詳細な説明を行うための分散アプリケーションの典型的なSOAのアーキテクチャとコンポーネントに焦点を当てています。
エンタープライズシステムアーキテクチャの進化
一枚岩
MVCデザインパターンに基づいて、すべてのシステム機能およびモジュールの、すなわちモノマーアーキテクチャは、単一のサーバ装置に接続されています。伝統的なMVCの考え方に基づいて、モデルによって前後端の分離の原則に基づいて、モノリシックアプリケーションは、コントロールとビューは、サービス要求を完了するために一緒に仕事を提供しています。マルチプレイヤーモードのチームワーク、コードの更新やメンテナンスを持つこの伝統的な建築、展開の継続的な困難は、もっと重要なのは、このアーキテクチャは、高い同時実行のためのインターネット業界の需要をサポートすることはできません。以下の図はモノマーモールアーキテクチャとSSMの実装アーキテクチャの典型的なアプリケーションを示しています。
モノリシックアプリケーションの詳細についてはで見つけることができます:
サーブレットコンテナの詳細なサーブレットJavaWebと開発
SSMのJavaのWebアプリケーション開発の原則に基づき、
クラスタ
少なくとも高並行性の要件では、欠陥モノマーのアプリケーションは、業界ではそれが並行処理性能を向上させる方法を、耐え難いのですか?アイデアはクラスタに、マルチボディになるために、直接、単一のアプリケーションで、サービスを分散することで、異なるアプリケーションサーバーの負荷分散に要求。また、これは初期の淘宝網のソリューションです。ここでは、クラスタ・アーキテクチャのスケッチは、次のとおりです。
クラスタのアーキテクチャは、効果的に高い同時実行の問題を解決するが、保守および可用性の問題をもたらすことは非常に困難ですが。また、関数には、それはユーザーのシングルサインオンを解決するものであっても、セッション放送、資源のブロードバンドと消費の方法によってする必要があります。生まれ高い同時実行のためのクラスタが、しかし、あなたはノード数でさえ強い増加、十同時レベルの何千ものに到達したい場合は、パフォーマンスが大幅に改善されません、ボトルネックがあります。
分散
複数のサーバーにプロジェクトコードの展開と同等のクラスター、上に、独立して展開され、各サーバが実行し、そして、複数のサブシステム間の通信の必要性をシステムモジュールに合わせていくつかのサブシステムに分割され、という考えを分散共同ビジネス・プロセスを完了します。以下に示すようなアーキテクチャを分散。
分散型アーキテクチャは、多くの利点があります。
- 分割されたモジュール、モジュール間の結合を低減するために、インタフェースを使用して通信を行います。
- いくつかのサブプロジェクト、別のサブプロジェクトを担当する別のチームにプロジェクトを分割するには。
- ただ、することができ、他のシステム・インタフェースを呼び出し、サブプロジェクトの増加機能を追加する必要があります。
- 分散配置の柔軟性。
しかし、対応する現像圧力をもたらす分散通信インターフェースの開発は、学習チームのコストを増加させます。
SOAベースのアーキテクチャ
SOA:サービス指向アーキテクチャサービス指向アーキテクチャの。これは、プロジェクトがエンジニアリングサービス層、プレゼンテーション層のプロジェクトに分割されています。サービス層は、ビジネスロジックが含まれている、あなただけのサービスを提供する必要があります。インタラクション、ビジネスロジックとプレゼンテーション層のみを達成するために、すべてのページのコールサービス層を処理する必要があります。プロジェクトが独立して展開することができます。
典型的なSOAアーキテクチャでは、サービス間の通信を含む分散アーキテクチャに由来する問題を解決するための通信及びサービスのためのミドルウェアおよびサブシステムの多くを追加して、ロード・バランシング、リバースプロキシ、情報センター、文書管理、バックアップからマスター、など。
詳細なコアモジュールとミドルウェア
生まれ高い同時実行のためのSOAアーキテクチャは、異なるサービス間の並行性の高い通信の問題の下に対処する必要があります。実際には、SOAのアーキテクチャは、その上のキャッシングサービス、データベース、ミドルウェア、パブリッシュおよびサブスクライブ・サービス、メッセージキュー、などのミドルウェア技術の様々な必要があります。以下は、一般的なモールSOAアーキテクチャ図です。
まず、システム間通信
Zookeeper
二、分布式文件服务器
在分布式应用中,无法通过传统手段解决文件上传和下载问题。因此,对于文件上传,业务系统节点可以把文件集中到分布式文件服务器做统一管理,而用户访问,也可以通过分布式文件服务器提供快速的文件下载支持。
FastDFS
- Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。
- Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
FastDFS架构和工作机制如下图所示:
三、负载均衡
四、搜索功能
Solr
- 集中式的配置信息(数据库连接池的配置文件,修改文件不用重启就可以生效)
- 自动容错
- 近实时搜索
- 查询时自动负载均衡
五、消息队列
MQ
ActiveMQ的消息形式
- 一种是点对点的,即一个生产者和一个消费者一一对应;
- 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。
- http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
- 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
- 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。