[転送] [ターン] ASP.NET大規模高性能システムアーキテクチャ設計

 大規模高性能ASP.NETのシステムアーキテクチャ設計

  大きな動的なアプリケーションプラットフォームは、主に基本的なシステムアーキテクチャを確立し、高容量、高並行性のウェブサイトを目指しています。大規模なサイトを実行して円滑な運営のWebアプリケーションを確保するためのサポートシステムとしてアプリケーションプラットフォームを維持するために、信頼性の高い安全な、スケーラブルかつ簡単にする必要があります。  

  記事リンクのシリーズ:

  建物高性能 ASP.NETのサイトが 開始されます

  建物の高パフォーマンス ASP.NET つのサイト 分析ページ処理(フロントエンド)

  建設現場は、最適化されたパフォーマンスのASP.NETのHTTPリクエスト(フロントエンド)をビス

  構築三つの詳細は、高性能のASP.NETサイトの成功または失敗を決定します

  建物高性能ASP.NETサイトの第5章 - パフォーマンス・チューニングの概要(前編)

  ASP.NET大規模高性能システムアーキテクチャ設計  

  建物高性能ASP.NETサイトの第5章 - パフォーマンス・チューニングの概要(短編小説)

  建物高性能ASP.NETサイトの第5章 - パフォーマンス・チューニングの概要(第二部)    

  パフォーマンスのボトルネック予備的診断とチューニング(パートI) - - 高性能ASP.NETサイト章VIを構築、パフォーマンスのボトルネックを特定

  シンプルな最適化対策 - 最初のチューニングで(続編下)パフォーマンスのボトルネック診断 - 高性能ASP.NETサイト章VIの構築

  不要な要求を減らすために - パフォーマンスのボトルネック予備的診断とチューニング(第二部の下) - 高パフォーマンスASP.NETサイト章VIの構築  

  メモリの問題(続編を)解決する方法第7章の下で高性能ASP.NETサイトの構築 - 管理リソースの最適化 - ガベージコレクションの深さ分析

  管理リソースの最適化 - - (短編小説の前に)メモリの問題を解決する方法の第VII章の下で高性能ASP.NETサイトを構築することはCLRのパフォーマンスを監視します

 

 

  大規模な動的アプリケーションは、いくつかのサブシステムに分割することができます。

ウェブフロントエンドシステム

負荷分散システム

データベースクラスタシステム

キャッシュシステム

分散ストレージシステム

分散型サーバ管理システム

コード配信システム

  ウェブフロントエンドシステム

 

 

 

  単一障害点、集中管理、統一された設定の目的を避けるために、さまざまなアプリケーションで共有サーバーを達成するために、各サーバは、複数のアプリケーションにサービスを提供することができ、アプリケーションサーバを分割するが、サーバーは、すべての一貫した使用を行いますないとき一部のアプリケーショントラフィックは、彼のアプリケーションが利益になる一方で、サーバクラスタ全体の性能向上を達成するためにサーバーノードを増加させることにより増加する場合。

ウェブは、フロントエンド・ベースのIIS / ASP.NET提供、および他のウェブホスティングプラットフォームをPHPの実行環境を。Serverは、開発者に対して透過的で、開発者は、サーバ管理に介入する必要はありません。

  負荷分散システム

 

 

  負荷分散システムは、ハードウェアとソフトウェアの両方に分かれています。以下のような高効率のハードウェア・ロード・バランシングが、高価、F5ようにと。以下のようなソフトウェアの負荷分散システム、無料または低価格で、ハードウェア負荷分散システムよりも効率が低いが、一般的なトラフィックまたは使用するのに十分なサイトの面でやや大きいため、LVS、nginxのほとんどのサイトでは、ハードウェア、ソフトウェアの負荷分散システムと使用されています。

  データベースクラスタシステム

 

 

 

Webサービスの有効性と拡張性を改善するために、クラスタ構造のバランスをとるフロントエンド負荷、データベースはまた、高信頼性を構築する方法、システム全体の信頼性を確保するために信頼性の高いサービスでなければならないの大規模並列処理を提供することができますデータベースシステム

  私たちは、上に示したスキームを使用することができます。

  1)使用するSQLデータベースは、考慮に入れてウェブ少ない書き込みデータベースアプリケーションは、より多くの機能を読んで、私たちは主にデータベースを専用の読み取りデータベースを提供するために最適化されたデータベースを読み書き、読み取りおよび書き込み操作が異なるのアプリケーションにアクセスしている達成するためにデータベース。

  2)使用同步机制实现快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。

  3)写数据库有多台,每台都可以提供多个应用共同使用,这样可以解决写库的性能瓶颈问题和单点故障问题。

  4)读数据库有多台,通过负载均衡设备实现负载均衡,从而达到读数据库的高性能、高可靠和高可扩展性。

  5)数据库服务器和应用服务器分离。

  6)从数据库使用BigIP做负载均衡。

  缓存系统

 

 

 

  缓存分为文件缓存、内存缓存、数据库缓存。在大型Web应用中使用最多且效率最高的是内存缓存。最常用的内存缓存工具是Memcachd。使用正确的缓存系统可以达到实现以下目标:

  1、使用缓存系统可以提高访问效率,提高服务器吞吐能力,改善用户体验。

  2、减轻对数据库及存储集服务器的访问压力。

  3Memcached服务器有多台,避免单点故障,提供高可靠性和可扩展性,提高性能。

  分布式存储系统

 

 

 

Web系统平台中的存储需求有下面两个特点:

  1) 存储量很大,经常会达到单台服务器无法提供的规模,比如相册、视频等应用。因此需要专业的大规模存储系统。

  2) 负载均衡cluster中的每个节点都有可能访问任何一个数据对象,每个节点对数据的处理也能被其他节点共享,因此这些节点要操作的数据从逻辑上看只能是一个整体,不是各自独立的数据资源。

  因此高性能的分布式存储系统对于大型网站应用来说是非常重要的一环。(这个地方需要加入对某个分布式存储系统的简单介绍。)

  分布式服务器管理系统

 

 

  随着网站访问流量的不断增加,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,原来基于单机的服务器管理模式已经不能够满足我们的需求,新的需求必须能够集中式的、分组的、批量的、自动化的对服务器进行管理,能够批量化的执行计划任务。

 

  在分布式服务器管理系统软件中有一些比较优秀的软件,其中比较理想的一个是Cfengine。它可以对服务器进行分组,不同的分组可以分别定制系统配置文件、计划任务等配置。

  它是基于C/S 结构的,所有的服务器配置和管理脚本程序都保存在Cfengine Server上,而被管理的服务器运行着 Cfengine Client程序,Cfengine Client通过SSL加密的连接定期的向服务器端发送请求以获取最新的配置文件和管理命令、脚本程序、补丁安装等任务。

  有了Cfengine 这种集中式的服务器管理工具,我们就可以高效的实现大规模的服务器集群管理,被管理服务器和 Cfengine Server可以分布在任何位置,只要网络可以连通就能实现快速自动化的管理。

  代码分发系统

 

 

 

  随着网站访问流量的不断增加,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,为了满足集群环境下程序代码的批量分发和更新,我们还需要一个程序代码发布系统。

  这个发布系统可以帮我们实现下面的目标:

  1) 生产环境的服务器以虚拟主机方式提供服务,不需要开发人员介入维护和直接操作,提供发布系统可以实现不需要登陆服务器就能把程序分发到目标服务器。

  2) 我们要实现内部开发、内部测试、生产环境测试、生产环境发布的4个开发阶段的管理,发布系统可以介入各个阶段的代码发布。

  3) 我们需要实现源代码管理和版本控制,SVN可以实现该需求。

  这里面可以使用常用的工具Rsync,通过开发相应的脚本工具实现服务器集群间代码同步分发。

 


---------------------
作者:小洋(燕洋天)
来源:CNBLOGS
原文:https://www.cnblogs.com/yanyangtian/archive/2011/02/09/1950299.html
版权声明:本文为作者原创文章,转载请附上博文链接!

おすすめ

転載: www.cnblogs.com/admans/p/11357309.html