(收藏) 浅谈大型网站动态应用系统架构

news/2024/5/11 12:53:30/文章来源:https://blog.csdn.net/weixin_30867015/article/details/99645999

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

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

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

l         Web前 端

l         负 载均衡

l         数 据库集群系统

l         缓 存系统

l         分 布式存储系统

l         分 布式服务器管理系统

l         代 码分发系统

Web前端系统

结构图:

为了达到不同应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服 务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应用访问量升高时,通过增加服务器节点达到整个服务器集群的性能提高,同 时使他应用也会受益。该Web前端系统基于Apache/Lighttpd/Eginx等 的虚拟主机平台,提供PHP程序运行环境服务器对开发人员是透明的,不需要开发人员介入服务器管理

负载均衡系统


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

数据库集群系统

结构图:


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

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

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

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

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/masky5310/archive/2010/08/09/1795677.html

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

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

相关文章

传统IDC部署网站(六)

2019独角兽企业重金招聘Python工程师标准>>> 26. alias 别名 一条命令的另外一个名字,你可以理解为外号。 [rootlocalhost /]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 ^C [rootlocalhost /]# alias viens0s3vi /etc/sysconfig/network-scripts…

免费建站系统 Joomla 3.9.5 发布

Joomla 3.9.5现已推出。这是针对3.x系列Joomla的安全修复程序版本,它解决了三个安全漏洞,包含20多个错误修复和改进。 什么是3.9.5? Joomla 3.9.5包含三个安全漏洞修复程序以及一些错误和改进,包括: 安全问题已修复 低…

非常酷的国外网站导航设计案例欣赏

作为网站最重要的组成部分之一,导航能够引导用户浏览网站中的更多内容。优秀的导航应该和网页内容完美的融合在一起,因此设计前需要设仔细分析网页结构。这篇文章收集了20个漂亮的网站导航设计案例,希望这些优秀的实例能给你带来灵感。New Ci…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

分享最新收集的HTML5和CSS3的网站设计模板

为什么80%的码农都做不了架构师?>>> 日期:2012-8-9 来源:GBin1.com 设计专业并且简洁的网站模板可以帮助我们更容易的开发和设计网站页面。作为最新最流行的web技术HTML5和CSS3技术来说,使用它们构建的模板更加简洁和…

谁在使用我的网站——用户行为分析

谁在使用我的网站——用户行为分析 前面根据用户的特征对用户做了分类,设定了一些常用的用户指标和值得关注的用户指标,基于这些分类用户指标的分析可以发现用户运营和推广中的诸多问题,其中活跃用户和流失用户的定义中已经用到了与用户行为相…

优化网站设计(四):对资源启用压缩

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。 作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…

网站初学笔记3-HTML实用元素3

HTML-复选框 <html> <body> <form>我喜欢自行车&#xff1a;<input type"checkbox" name"Bike"><br />我喜欢汽车&#xff1a;<input type"checkbox" name"Car"></form> </body><…

ibits和oracle模糊查询,iBATIS 模糊查询LIKE (转) - 我的博客 - ITeye技术网站

iBatis 开发指南告诉我们&#xff0c;当 Person 对象的 name 属性不为 null 时启用 name 查询条件在映射文件 person.xml 中的配置为Xml代码 select id as id,name as name,passwd as passwd from person(name like #name#)select id as id,name as name,passwd as passwd fro…

腾讯云linux建站教程视频,手把手教你建站教程:购买腾讯云服务器后手动搭建WordPress网站1(CentOS 7)...

在搭建WordPress网站之前&#xff0c;我们需要先部署LNMP环境&#xff0c;很简单&#xff0c;不会的直接复制粘贴&#xff0c;十几分钟就完成了。下面请跟着教程&#xff0c;一步一步来跟着我复制粘贴&#xff1a;实例配置举例&#xff1a;(建议购买4G内存以上的云服务器)CPU&a…

网站如何变成灰色的

网站如何变成灰色的&#xff1f;![在这里插入图片描述](https://img-blog.csdnimg.cn/3862cb7c9e41412e8c66a19157ad3637.png 参考&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter filter :CSS 属性将模糊或颜色偏移等图形效果应用于元素。滤镜通常用于…

网站添加头部Meta property=og协议的使用方法详解教程

Meta Propertyog怎么使用&#xff1f; 如何调用og:type&#xff1f;怎么在文章中调用og:title&#xff1f;如何使用调取文章og:image&#xff1f;本文将介绍什么是Meta Propertyog协议以及该协议的用法&#xff01; 什么是Meta Propertyog协议&#xff1f; og是一种新的HTTP…

SEO推广计划

一、网站分析以及关键词定位 1.官网定位 官网介绍公司信息、展示公司产品以及服务&#xff0c;让用户了解公司&#xff0c;产品服务&#xff0c;对产品服务产生兴趣&#xff0c;官网内容的建设&#xff0c;都要以目标用户为中心进行规划。最终目的&#xff0c;是要让用户信任这…

php里echo中加样式_PHP每15分钟自动更新网站地图(减少服务器消耗)

php中文网最新课程每日17点准时技术干货分享最近在弄一个短网址&#xff0c;自己写的代码。锻炼一下自己。在做html网站地图这块&#xff0c;想着把所有生成的短连接都展示出来&#xff0c;方便收录。就写了一个sitemap.php&#xff0c;后来发现&#xff0c;如果以后人流量大或…

利用WDCP面板备份网站文件及数据库以及网站还原恢复方法

2019独角兽企业重金招聘Python工程师标准>>> 无论我们VPS/服务器是使用的WEB面板管理&#xff0c;还是用一键包编译安装网站环境&#xff0c;在确保网站正常运维的同时&#xff0c;要及时做好网站的数据备份&#xff0c;万一如果有因为服务器导致无法打开&#xff0…

axios 注册拦截器 cdn引用_教程篇 | 使用七牛云存储、CDN加速网站图片

嗨&#xff0c;大家好&#xff0c;今天给大家分享的是使用七牛云等云服务商提供的对象存储服务&#xff0c;存储网站图片&#xff0c;并且可以cdn加速图片&#xff0c;让你的网页变得更快。首先给大家多多介绍一些有关的知识。目前各大云服务商都提供了对象存储服务&#xff0c…

分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客

这些天&#xff0c;由于公司的业务需求&#xff0c;接触到了ssl证书和https协议。博客前几篇文章也分享了在WEB服务器上安装SSL证书&#xff0c;为网站开启https协议的教程&#xff0c;感兴趣的童鞋可以前往查看相关文章&#xff1a; 《LinuxNginx/Apache/Tomcat新增SSL证书&am…

大型网站架构系列:分布式消息队列(一)(转)

大型网站架构系列&#xff1a;分布式消息队列&#xff08;一&#xff09; 以下是消息队列以下的大纲&#xff0c;本文主要介绍消息队列概述&#xff0c;消息队列应用场景和消息中间件示例&#xff08;电商&#xff0c;日志系统&#xff09;。 本次分享大纲 消息队列概述消息队列…

网站正在建设中_网站建设中的几种推广方法

大家好&#xff0c;我是吉礻羊&#xff01;在网站建设的过程中&#xff0c;我们常常会运用到一些方法来对网站进行推广&#xff0c;有些方法效果很好&#xff0c;有些可能效果不明显。今天&#xff0c;和大家分享几种比较有效的推广方法。网站建设中的几种推广方法网站建设中的…