服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

大流量、高并发的网站的底层系统架构

2021-01-05 14:49:03 阅读(149 评论(0)

与网站静态内容相比,动态应用是指c//c 、php、Java、perl、.net等服务器端语言开发的网络应用软件,如论坛、网络相册、交友、BLOG等常用应用。动态应用系统通常与数据库系统、缓存系统和分布式存储系统密不可分。大型动态应用系统平台主要是为大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易于维护的应用系统平台作为支持,以确保网站应用的顺利运行。大型动态应用系统可分为几个子系统:l        Web前端系统l        负载均衡系统l        数据库集群系统l        缓存系统l        分布式存储系统l        L分布式服务器管理系统        Web前端系统的代码分发系统结构图:  为实现服务器共享、避免单点故障、集中管理、统一配置等目的,不是应用程序划分服务器,而是统一使用所有服务器。每个服务器都可以为多个应用程序提供服务。当某些应用程序访问量增加时,通过增加服务器节点来提高整个服务器集群的性能,并使其应用程序受益。Web前端系统基于Apache/Lighttpd虚拟主机平台,如Eginx,提供PHP程序运行环境。Web前端系统基于Apache/Lighttpd/Eginx等虚拟主机平台提供PHP程序运行环境。服务器对开发人员透明,不需要开发人员干预服务器管理负载平衡系统  负载平衡系统分为硬件和软件。硬件负载平衡效率高,但价格昂贵,如F5。软件负载平衡系统价格低廉或免费,效率低于硬件负载平衡系统,但也足以用于流量一般或稍大的网站,如lvs,nginx。大多数网站使用硬件和软件负载平衡系统。数据库集群系统结构图:  由于Web前端采用负载均衡集群结构,提高了服务的有效性和可扩展性,数据库必须高度可靠,以确保整个服务系统的高可靠性。如何建立一个可以提供大规模并发处理的高可靠性数据库系统?如上图所示,我们可以使用方案:1)       使用MySQL数据库,考虑到Web应用数据库阅读和写作的特点,我们主要优化阅读数据库,提供特殊的阅读数据库和写作数据库,在应用程序中访问不同的数据库。2)       利用MySQLReplication机制,快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。3)       有多个数据库,每个数据库都可以提供多个应用程序,以解决性能瓶颈和单点故障问题。4)       阅读数据库有多个,通过负载平衡设备实现负载平衡,从而实现阅读数据库的高性能、高可靠性和高可扩展性。5)       数据库服务器与应用服务器分离。6)       BigIP用于数据库的负载平衡。缓存系统  缓存分为文件缓存、内存缓存和数据库缓存。内存缓存是大型Web应用中使用最多、效率最高的。Memcachd是最常用的内存缓存工具。使用正确的缓存系统可以实现以下目标:1、  使用缓存系统可以提高访问效率,提高服务器吞吐量,提高用户体验。2、  减少对数据库和存储集服务器的访问压力3、多台Memcached服务器,避免单点故障,提供高可靠性和可扩展性,提高性能。分布式存储系统结构图:  WEB系统平台的存储需求具有以下两个特点:1)存储容量大,往往达到单个服务器无法提供的规模,如相册、视频等应用。因此,需要专业的大规模存储系统。2)负载平衡cluster中的每个节点都可以访问任何数据对象,其他节点也可以共享每个节点的数据处理。因此,这些节点要操作的数据在逻辑上只能是一个整体,而不是独立的数据资源。因此,高性能的分布式存储系统是大型网站应用的重要组成部分。(这个地方需要简单介绍一下分布式存储系统。)分布式服务器管理系统结构图:  随着网站访问流量的不断增加,大多数网络服务以负载平衡集群的形式提供外部服务。随着集群规模的扩大,基于单机的服务器管理模式已不能满足我们的需求。新的需求必须能够集中、分组、批量和自动管理服务器,能够批量执行计划任务。分布式服务器管理系统软件中有一些优秀的软件,其中Cfengine是理想的软件之一。分布式服务器管理系统软件中有一些优秀的软件,其中最理想的是Cfengine。它可以分组服务器,不同的组可以定制系统配置文件、计划任务等配置。它是基于C/S结构的。所有服务器配置和管理脚本程序都保存在Cfengineserver上,管理服务器运行CfengineClint程序。CfengineClint通过SSL加密连接定期向服务器端发送请求,以获得最新的配置文件和管理命令、脚本程序、补丁安装等任务。有了集中的服务器管理工具,如cfengine,我们可以有效地实现大规模的服务器集群管理,只要网络能够连接,管理服务器和cfengineserver就可以分布在任何位置,实现快速自动化管理。系统结构图代码发布:  随着网站访问流量的增加,大多数网络服务通过负载平衡集群提供外部服务。随着集群规模的扩大,我们还需要一个程序代码发布系统,以满足集群环境中程序代码的批量分发和更新。该发布系统可以帮助我们实现以下目标:1)生产环境服务器以虚拟主机的形式提供服务,不需要开发人员干预维护和直接操作。提供发布系统可以将程序分发到目标服务器,而无需登录服务器。2)要实现内部开发、内部测试、生产环境测试、生产环境发布四个开发阶段的管理,发布系统可以介入代码发布的各个阶段。3)需要实现源代码管理和版本控制,SVN可以实现这一需求。通过开发相应的脚本工具,可以使用常用的工具Rsync实现服务器集群间代码的同步分发。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

最新文章