大流量网站的底层系统架构

news/2024/5/12 17:19:31/文章来源:https://blog.csdn.net/weixin_34249678/article/details/93346362

动态应用,是相对于网站静态内容而言,像我们.NET 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。

  大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。

  大型动态应用系统又可分为几个子系统:

  l Web前端系统

  l 负载均衡系统

  l 数据库集群系统

  l 缓存系统

  l 分布式存储系统

  l 分布式服务器管理系统

  l 代码分发系统

 

  Web前端系统

  结构图:

                

    为了达到不同应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应用访问量升高时,通过增加服务器节点达到整个服务器集群的性能提高,同时使他应用也会受益。

  负载均衡系统

                

     负载均衡系统分为硬件和软件两种。硬件负载均衡效率高,但是价格贵,比如F5等。软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量一般或稍大些网站来讲也足够使用,比如lvs,nginx。大多数网站都是硬件、软件负载均衡系统并用。

   数据库集群系统

  结构图:

             

        由于Web前端采用了负载均衡集群结构提高了服务的有效性和扩展性,因此数据库必须也是高可靠的才能保证整个服务体系的高可靠性,如何构建一个高可靠的、可以提供大规模并发处理的数据库体系?

  我们可以采用如上图所示的方案:

  1) 使用Microsoft sql SERVICE 数据库,考虑到Web应用的数据库读多写少的特点,主要对读数据库做了优化,提供专用的读数据库和写数据库,在应用程序中实现读操作和写操作分别访问不同的数据库。

  2) 使用Microsoft sql SERVICE 主库上建立本地发布在从库上建立本地订阅机制实现快速将主库(写库)的数据库复制到从库(读库),但是会有最少10秒的延迟。一个主库对应多个从库,主库数据实时同步到从库。

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

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

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

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

缓存系统

        

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

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

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

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

  分布式存储系统

  结构图:

              

 

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

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

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

  因此高性能的分布式存储系统对于大型网站应用来说是非常重要的一环。

  分布式服务器管理系统

  结构图:

             

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

  在分布式服务器管理系统软件中有一些比较优秀的软件,其中比较理想的一个是 Cfengine。它可以对服务器进行分组,不同的分组可以分别定制系统配置文件、计划任务等配置。它是基于C/S 结构的,所有的服务器配置和管理脚本程序都保存在Cfengine Server上,而被管理的服务器运行着 Cfengine Client 程序,Cfengine Client通过SSL加密的连接定期的向服务器端发送请求以获取最新的配置文件和管理命令、脚本程序、补丁安装等任务。

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

  代码发布系统

  结构图:

              

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

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

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

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

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

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

转载于:https://www.cnblogs.com/One-dream-man/archive/2012/09/13/2684091.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_723962.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

55+手绘网站设计 – 构建极具创新效果的网站

手绘网页设计无疑是创建个性化页面并获取众多关注的好办法。 尽管手绘在网页设计中不是最热门的,但却是很常见的方法。如你在以下的实例中所见,将手绘融入网页设计有很多种方法,都看上去很棒!正如其他任何艺术形式一样&#xff0c…

《分享》学习单页网站制作的20个优秀案例

单页网站如果设计得当,是一个把所有的内容放到前沿和中心很好的方式,能够增加访问者看到它的机会。因此今天,我们收集了一组非常出色的单页网站来推荐给大家。如果大家想了解这些精美网站是如何实现的,可以看我之前分享的文章《谈…

WAP应用及手机网站的现状

2019独角兽企业重金招聘Python工程师标准>>> 目前,使用移动电话访问网上信息的方式主要有两种:其一,由电信增值服务(TelephonyValue Added Services)直接在无线网络中提供WML 的Web 格式的信息服务;其二,通…

网站发布

1.首先在服务器上建数据库&#xff0c;建表&#xff0c;插入数据 create database student create table students( sno char(10), sna char(10) ) insert into students values (001,N张三)2.在本地计算机上编程&#xff0c;连接到数据库 <body><%Connection con nu…

[源码和文档分享]基于JavaEE轻量级SSM框架和Maven构建的校友录网站设计与实现

摘要 校友作为高校的一种重要资源&#xff0c;在促进高校专业教学改革、募集高校筹资办学途径、促进校企合作、加强毕业生感情交流、提升大学生就业质量等方面发挥着重要作用。然而目前我校并没有一个系统可以追溯毕业生的情况。因此&#xff0c;校友们需要一个平台&#xff0c…

36个时尚创意iPhone App网站设计

2019独角兽企业重金招聘Python工程师标准>>> iPhone 的APP应用程序都是只能集成在APP Stone里下载的&#xff0c;但是有一个漂亮的介绍网站也是必须的&#xff0c;今天收集分享&#xff1a;36个时尚创意iPhone App网站设计&#xff0c;希望其中有你喜欢和需要的&…

优秀网页设计:25个最佳的摄影师作品网站

网页设计师经常浏览其他设计师的作品集网站来获取灵感和想法并用于自己的工作中。摄影师&#xff0c;和设计师一样&#xff0c;需要一个对访客有吸引力的作品网站&#xff0c;向潜在客户展示他们的创作&#xff0c;通常会提供一些摄影师的传记信息&#xff0c;使人们更容易联系…

sonne_game网站开发02spring+mybatis框架搭建

从最开始搭框架谈起&#xff0c;而且&#xff0c;我不仅仅会讲how&#xff0c;还会努力讲why。因为对于web开发&#xff0c;由于有太多好的框架、组件、工具&#xff0c;使得how往往不是那么深刻&#xff0c;背后的why更值得专研。如果有初学者关注我这个系列&#xff0c;也一定…

25个具有灵感的餐厅网站设计案例

对于餐饮业来说&#xff0c;网站能够对网上订餐的业务产生重大影响。无论是允许客户查看菜单和精品&#xff0c;还是他们找到一个位置&#xff0c;&#xff0c;注册一个邮件列表&#xff0c;有很多餐馆可以从网站中受益的方式&#xff0c;。 在这篇文章中&#xff0c;我们将展示…

继杀毒软件免费之后 网站安全也免费!

前几年刚有杀毒软件免费的时候&#xff0c;各大安全软件厂商还很不适应。冷嘲热讽者有之&#xff0c;不屑一顾者有之&#xff0c;厉声痛斥者有之。而现在看来&#xff0c;这只是一种常见的商业 模式而已&#xff0c;并没有什么可说的。而市场逐渐成熟以后&#xff0c;免费杀毒软…

Tap企业建站系统:帮助中小企业快速构建营销网站

据权威统计部门统计&#xff0c;截止2011年底我国网民总数将突破5.3亿&#xff0c;网购市场交易规模超7500亿元&#xff0c;随着我国互联网的飞速发展和网民数量的不断增加&#xff0c;利用互联网宣传企业的形象和产品对于企业来来说越来越重要。 传统的企业建立企业网站一般有…

从零开始学建站-域名篇

从零开始学建站-域名篇域名的基础知识域名俗称网址&#xff0c;很多人对于一个网站的最初印象可能正是从这些字符串开始的。为了给访问者留下一个深刻的第一印象&#xff0c;域名的选择在网站建设过程中有着很大的作用。一个好的域名可以迅速提高网站的知名度&#xff0c;在一定…

MVC4.0网站发布和部署到IIS7.0上的方法

链接地址&#xff1a;http://www.th7.cn/Program/net/201403/183756.shtml 最近在研究MVC4&#xff0c;使用vs2010&#xff0c;开发的站点在发布和部署到iis7上的过程中遇到了很多问题&#xff0c;现在将解决的过程记录下来&#xff0c;以便日后参考&#xff0c;整个过程主要以…

清除Chrome浏览器特定网站的Cookie

1&#xff1a;找到Chrome浏览器的三个点下的“设置” 2&#xff1a;找到“隐私设置与安全性” 3&#xff1a;找到“Cookie及其他网站数据” 4&#xff1a;下拉找到“查看所有Cookie及网站数据” 5&#xff1a;输入你想要清除的Url地址

响应式网站设计的三个基础

1&#xff1a;网格系统&#xff08;Grid System&#xff09; 2&#xff1a;流图像&#xff08;Fluid images&#xff09; 3&#xff1a;媒体查询(media queries)

在CDN环境下的网站 面临着新的安全威胁

在CDN环境下的网站 面临着新的安全威胁网站CDN&#xff0c;通过智能DNS解析&#xff0c;让用户访问最近的CDN节点&#xff0c;这些节点通过反向代理和缓存&#xff0c;使用户访问速度提升。同时加大了服务器负荷能力&#xff0c;也隐藏了主服务器IP的地址&#xff0c;起到一定的…

删除 Windows Azure 网站上的标准服务器头

编辑人员注释&#xff1a; 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写。 请求和响应中包含的 HTTP 头是Web 服务器和浏览器之间的 HTTP 通信过程的一部分。例如&#xff0c;以下是一个典型网站上某个 Web 请求的典型响应中记录的头&#xff1a; HTTP 头是客户…

使用mouseover事件在Chrome浏览器失灵的原因

问题描述 当我使用原生JS写鼠标悬停的监听事件的时候&#xff0c;发现在Edge浏览器中&#xff0c;正常工作&#xff0c;但是在Chrome浏览器中失灵。 原因 也就是说打开了“切换设备工具栏”会使得鼠标悬停效果无效。

Spring 使用 RestTemplate 模拟 电商网站+支付平台

一、电商网站支付平台的支付过程 通过RestTemplate模板对象发送http请求并接收返回结果。 支付架构&#xff1a; 支付过程&#xff1a; pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

作为前端开发的我,都有收藏着什么网站?

定制插图&#xff1a;https://undraw.co/illustrations 字体图标库&#xff1a; https://ionicons.com/ https://semantic-ui.com/elements/icon.html https://themify.me/themify-icons 前端插件&#xff1a; 动效Animate.css&#xff1a;https://daneden.github.io/a…