浅谈大型网站动态应用系统架构

news/2024/5/9 7:58:24/文章来源:https://blog.csdn.net/Snoopy7713/article/details/84208762

浅谈大型网站动态应用系统架构

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

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

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

l         Web前端系统

l         负载均衡系统

l         数据库集群系统

l         缓存系统

l         分布式存储系统

l         分布式服务器管理系统

l         代码分发系统

Web前端系统

结构图:

 

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

负载均衡系统

 

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

数据库集群系统

结构图:

 

由于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,通过开发相应的脚本工具实现服务器集群间代码同步分发。

 

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

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

相关文章

利用阿里巴巴的矢量图片库工具网站制作自己的图标字体

操作都比较简单 进入这个网站http://iconfont.cn/ 然后点击上方的图标管理-->我的图标 选择第二个云朵操作,是上传svg图片用的, 点击批量操作,批量加入购物车之后,去往购物车,点击下载代码即可,当然也可…

[Linux]宝塔创建站点

【linux】在宝塔内创建网站 1、在虚拟机下载安装宝塔,安装完成以后会有宝塔面板的“账号密码”,需要记下来 如图所示,为了信息安全我将账号密码擦掉了 2、在虚拟机开启的状态下,登录宝塔面板 3、点击“网站”→“添加站点”&…

副业笔记:如果将企业网站进行到底

最近,我抽时间整理了以前的工作笔记,梳理了一下从毕业到现在服务过的客户资料。让我没想到的是,在不到3年的时间里,自己居然做了50多个网站,认识了大概40多个客户。再次让我笃行:时间就是力量。而且这些都是…

网站全灰,原来仅需一行css代码

打开B站看到网站整体全灰,发现css代码只有一行,十分精简 filter: grayscale(100%);只需要加在html节点上,就可以

vue漂亮的企业网站模板

vue企业网站模板 vue静态模板,没有后台,pc端已经自适用手机端,宣传够用了,代码下载地址: https://gitee.com/rt45/sellgit_com_web 部署步骤 前期安装nodejs,vue 执行 npm install -g cnpm --registryhttps…

vue3+ts+pinia全新企业网站

vue3tspinia全新企业网站 最新技术,全新企业网站组件式开发,左图右列表,广告、轮播已抽象为组件,非常适合二开 http://demo.hyxdsoft.com/ http://demo.hyxdsoft.com/web1001/#/

vue自适应服饰公司门户网站

企业网站 http://demo.hyxdsoft.com/web1033 http://demo.hyxdsoft.com 本地安装步骤 前期安装nodejs,vue 顺序执行 npm install npm run dev或者npm run serve

仿视频网站弹幕效果

一、需求 开发一个类似bilibili的视频弹幕效果。网上有bilibili的开源项目。那么我们要实现一个简易的,应该怎么办呢? 有办法的,先看效果: 二、分析 最直接的办法是自定义一个ScreenView作为幕布,然后绘制一个个的子…

有关采用Filter:实现网站自动登录功能模块

网站自动登录操作分析,我以CSDN用户登录功能为例说明, 1.进入csdn网站的登录界面 地址: CSDN用户登录界面 界面效果如下: 2.输入正确的用户名和密码,并且勾选上 下次自动登录功能 3.点击登录,如果成功登录,就会跳转到登陆成功的界面. 4.如果你再去点击CSDN用户登录界面 看看什…

.NET技术+25台服务器怎样支撑世界第54大网站

英文原文: StackOverflow Update: 560M Pageviews A Month, 25 Servers, And Its All About Performance StackOverflow 是一个 IT 技术问答网站,用户可以在网站上提交和回答问题。当下的 StackOverflow 已拥有 400 万个用户,4000 万个回答&…

说说大型高并发高负载网站的系统架构

转载请保留出处:俊麟 Michael’s blog (http://www.toplee.com/blog/?p71)Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p71 我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过…

更改Wamp下网站地址栏图标

大家应该遇到这样一个问题,我们利用wamp做服务器运行网页的时候,网页地址栏显示的图标一直是wampserver默认的图标,想改一下怎么办呢? 问题如下: 就是这些图标,如何自定义自己的图标,而不是…

炫酷的个人功能网站

有空把自己之前的网站修缮了下,首先把pc端,手机端兼容问题解决了,之前的没有响应式框架,第二,跨域问题解决了,之前最重要的一些页面总是出不来,现在可以了,还有就是不小心把数据库删…

一个炫酷的个人网站带后台

该demo下线了,如果还有需要源码的请找我,工作一年后我总结模块,新上线了一个系统,欢迎大家查阅指教! 点击进入系统http://zengchenglong.online:8090/login.html 技术栈:后端:javaspringbootmy…

利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能

介绍之前做两个声明&#xff1a; 以下代码可以直接运行&#xff0c;当然你别忘了引用jQuery才行。 <script> // DeviceOrientation将底层的方向传感器和运动传感器进行了高级封装&#xff0c;提供了DOM事件的支持。 // 这个特性包括两个事件&#xff1a; // 1、deviceOri…

项目简介-NodeJS+MongoDB实现简单网站

项目简介-NodeJSMongoDB实现简单网站 主要是参考视频学习。视频地址&#xff1a; http://www.imooc.com/learn/75 一、项目要求 要求在云计算平台上采用脚本语言NoSQL数据库实现一个简单的在线应用系统。 以小组实验报告的形式提交。 二、项目简介 2122网站&#xff0c;是…

基于SSM实现的简易员工管理系统(基于阿里云的网站上线篇)

2017-9-9 16:49更新&#xff1a; 好的&#xff0c;现在看来不备案是彻底玩不了了&#xff0c;想看看界面的&#xff0c;可以通过ip访问&#xff0c;IP好像暂时还没有封&#xff0c;不知道还能活多久&#xff0c;哎~&#xff08;101.132.76.93&#xff09; 2017-9-8 23:23更新&…

基于SSM实现的简易员工管理系统(基于阿里云的网站上线篇)

2017-9-9 16:49更新&#xff1a; 好的&#xff0c;现在看来不备案是彻底玩不了了&#xff0c;想看看界面的&#xff0c;可以通过ip访问&#xff0c;IP好像暂时还没有封&#xff0c;不知道还能活多久&#xff0c;哎~&#xff08;101.132.76.93&#xff09; 2017-9-8 23:23更新&…

Ubuntu安装docker,使用docker安装awvs,并测试网站输出测试报告

Ubuntu安装docker&#xff0c;使用docker安装awvs&#xff0c;并测试网站输出测试报告 1.Ubuntu安装docker ​ 在Ubuntu中按CtrlAltT进入终端命令&#xff0c;实际安装参考Ubuntu Docker 安装 | 菜鸟教程 (runoob.com) 我是用下面的命令&#xff0c;然后系统提醒缺啥&#x…

自助建站工具 搭建出来的网站真的适合SEO吗?

最近有一个做SEO优化朋友问笔者&#xff0c;为什么自助建站做出来的网站排名很难做上去。我的第一个反应是&#xff0c;不会吧&#xff0c;用自助建站做出来的网站做SEO&#xff0c;这要是能做上去排名&#xff0c;那才叫奇怪呢。但是呢&#xff0c;又不能和朋友这样直接说&…