【大型网站开发系列第一篇】——网站结构层次

news/2024/5/17 7:48:13/文章来源:https://blog.csdn.net/cxzhq2002/article/details/7332873

前言

网上有很多关于网站结构的各种讨论,对于他们的好坏,我没有资格去评论,因为对于不同领域需要不同的结构。我这里只讲解下我所开发的项目的各个方面,整理下自己的思路,同时也希望分享给大家。

好了,还是回归到正题上。

项目背景

我所开发的项目是一个会员中心,一个社区项目,用户量比较大。至于具体有多少功能,这里不太好详细介绍,单纯从一个社区性质的角度来解读下该网站项目。

我们经历过的网站架构

1)server-lient:一台服务器,搭载了DB和Web服务器,这样开始了网站服务。

2)DB server-Web server-client:DB和Web服务器分开,随着网站访问量增加,这个做了拆分。

3)DB server-Web server;Web server-client:一台DB,多台Web。

4)DB server;DB server-Web server;Web server-client:多台DB,多台Web时代。

从第4代网站架构开始,网站对架构的依赖越来越强,这个时候需要考虑的问题也越来越多,DB同步、Web缓存、负载均衡、DB业务拆分、Web服务拆分等等。

对于第3代以前的架构,这边应该没有必要讲解,这些相对简单,而且基本上大家都已经理解。那么我们就从第4代开始讲解,并衍生出我们现在的第5代架构。

第4代构架简图

 

 

1)便携电脑:客户端发起请求,通过CDN负载均衡,将请求分配到各个Web server上。

2)Web server:Web服务器直接读取DB数据,或者读取Web服务器上的缓存,或者读取专门的缓存服务器(App server的一种)来加载用户数据。

3)App server:这里我给的是一个统称,App server有很多功能,比如:缓存用户数据、缓存业务数据、MQ异步服务器、搜索服务器等等,依靠这些App server来降低对DB服务器的直接依赖,减轻数据库压力,提高网站的性能。

4)DB server:这个不用做太多介绍,主要是业务数据的固化,但是这里做了很多DB业务拆分,DB服务器负载均衡等操作,这些都放在后续的文章中讲解。

 

好了,从这个架构图来看,似乎很完美了。但是事实总是往相反的方向发展,网站用户数量增长比较快,这个架构又不满足了。

衍生出来的第5代架构

先来说说为什么第4代架构不满足需求。

随着用户量的增长,Web server服务器自然需要增加,但是用户数据缓存服务器访问量增大,需要增加服务器;MQ异步服务器请求量增大,大量MQ处理不过来,需要增加服务器。服务器的增加固然可以提高性能,但是服务器的管理问题随之来临,经常出现服务器挂掉,服务不稳定等问题。往往是一台服务器挂掉,整个网站就慢下来,严重影响用户体验。

第5代架构简图

1)便携电脑:客户端发出请求,依然通过负载均衡发送到我们的Web服务器集群。

2)Web服务器集群:Web服务器依然可以直接读取数据库和读取本地缓存的数据,但是增加了一个数据访问层,由数据访问层来提供数据服务。

3)数据访问层:数据访问层对外只提供接口,不提供实现细节,采用分布式技术,提供可靠的、高性能的数据服务。(该部分我也在努力研究中,会在后续的章节进行解读)

4)其他服务:这些服务只是针对一些边缘业务,数据量不大的一些业务。就类似于第4代架构中的App server服务一样。

5)DB服务器集群:我这个架构里的DB集群,在现实实现中,其实并没有做到集群,还是沿用第4代架构中的DB业务拆分,但是DB服务器集群是我们的发展方向。

 

第5代架构中,最有讲头的应该是数据访问层,因为该层是提供数据服务,对整个网站来说性能、稳定性就全靠它了。

 请关注后续文章。

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

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

相关文章

Web 应用程序项目与网站项目

在 Visual Studio 中,可以创建“Web 应用程序项目”或“网站项目”。每种项目类型各有优缺点,要选择可以满足需要的最佳项目类型,应了解各项目类型之间的差异。创建项目之前,必须选择合适的项目类型,原因是从一种项目类…

解析 PHP 中 session 的实现原理以及大网站应用应该注意的问题

一 PHP SESSION原理 session 是在服务器端保持用户会话数据的一种方法,而 cookie 是在客户端保持用户数据。HTTP 协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系。那么,服务器是如何记住众多用户的会话数据呢? 首先…

谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些。最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较。其实在很多时候,收费的不一定就比免费的成本更高。因为开发一个…

大型互联网网站架构

构建高性能Web站点 http://download.csdn.net/download/E_wsq/2613845http://download.csdn.net/download/E_wsq/2613845 ===========&#xff…

部分HTTPS网站受影响:Firefox暂停“弃用SHA-1加密”计划

由于SHA-1脆弱的安全性,Mozilla、谷歌、微软纷纷宣布了弃用这项加密技术的计划。但是由于不少设备与平台未能及时跟进,这一迁移让大量老用户受到了影响。此前,Facebook曾表示会为不支持SHA-1的访客继续提供服务。而在部分Firefox用户报告无法…

php网站主页后台_标准化企业网站建设方案是什么样的?

一、企业网站的意义企业网站是企业在互联网上进行网络营销和形象宣传的平台,相当于企业的网络名片,不但对企业的形象是一个良好的宣传,同时可以辅助企业的销售,通过网络直接帮助企业实现产品的销售。企业可以利用网站来进行企业形…

python f.write 保存图片到路径_Python爬虫篇—网页爬虫、图片爬虫、文章爬虫、新闻网站爬虫...

今天分享一则python比较基础的技术,爬虫。教小白们怎么轻松利用爬虫技术获取自己想要的知识内容。本节学习目标:学习Python爬虫爬取新闻网站新闻列表爬取图片把爬取到的数据存在本地文件夹或者数据库学会用pycharm的pip安装Python需要用到的扩展包一、首…

js添加keyword让搜索引擎能够搜到_广州seo搜索搜索引擎优化电话-哪家好_华阳网络...

广州seo搜索搜索引擎优化电话-哪家好,热门搜索事件的短标题和普通微博的热门搜索标题。奇怪的头条类似于媒体的头条,伪“头条党”。当用户搜索结果时,他们首先看到的是标题和描述。如果标题和描述不够吸引人,则无法单击。那么,如何…

如何设置几个循环出来的span其中一个宽度_一步一步实现一个古诗词网站(三)——首页...

汪小黑:一步一步实现一个古诗文网站(二)——需求分析​zhuanlan.zhihu.com上篇文章,我们对项目进行了需求分析,明确了项目所需的各个功能模块,产出了页面的原型设计图。这篇文章我们将进入实战编码环节&…

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

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

seo伪原创工具_一键生成伪原创文章有用吗(正确使用伪原创工具)

一定有不少的SEOer正在使用伪原创文件生成器这个工具吧,我可以正确的断定出来,一个懂SEO优化的SEOer绝对能够正确理解文章的作用,而那些似懂非懂的SEOer每天都在为原创文章的事情烦恼。往往一直以为每天坚持更新文章就可以获得排名的SEOer却没…

十年Java编程开发生涯,java基础刷题网站

Spring 面试题 1、不同版本的 Spring Framework 有哪些主要功能? 2、什么是 Spring Framework? 3、列举 Spring Framework 的优点。 4、Spring Framework 有哪些不同的功能? 5、Spring Framework 中有多少个模块,它们分别是什…

antd table 时间搜索_一份完整的网站SEO搜索引擎优化方案思路,送给你,请查收!...

我们在给一个网站做SEO优化的时候,通常都需要先做出一份网站优化的方案,根据方案再去针对网站进行细致的调整优化工作。这份方案的思路决定了你是否能把网站的优化做好,具体详情请大家继续往下看。一、行业品牌/调研我们在做一个网站的SEO优化…

Windows平台网站图片服务器架构的演进

构建在Windows平台之上的网站,往往会被业内众多架构师认为很“保守”。很大部分原因,是由于微软技术体系的封闭和部分技术人员的短视造成的。由于长期缺乏开源支持,所以只能“闭门造车”,这样很容易形成思…

高扩展性网站的50条原则

《高扩展性网站的50条原则》,利用一天半的时间快速浏览总结的电子书,对网站的建设有一个原则性的把握,书中提到的大部分原则现在已成为互联网行业的共识,但并不妨碍我们重新整理分类,从全局层面把控高扩展性网站的建设…

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

程序员 10个 堪称神器的学习网站

话不多说,直接上干货! 注:分享一个学习交流群796170550,有不懂的问题可以一起相互讨论 【群里还含有:Java80g学习视频Java学习书籍Java项目实战源码安装软件等】 01、大学资源网 大学资源网是一个完全免费并且功能非…

爆肝整理珍藏多年的实用工具/学习网站,助你在写代码的路上更顺利!!!

前言 这期是介绍自己常用的一些工具安利一下 千万不要白嫖,真香警告⚠️。 但是我在构思这篇文章的时候发现我贴个标题,然后发下软件信息会不会太乏味了,于是创作鬼才我呀,准备用一个产品的研发流程,是的就是用这样的…

那些好用的网站推荐(一)----功能网站

1.Smallpdf:(https://smallpdf.com/) 可以实现文档之间的互相转换,我经常用的就是PDF转word,还有各种文件格式之间的转换 2.ProcessOn:(https://www.processon.com/) 很好的免费作图软件,画流程图、UML图,…

那些好用的网站推荐(二)----学习网站

3.菜鸟教程:(https://www.runoob.com/) 对新手很友好的一个教程网站,一般可以通过这个网站大体了解一下想要学习的知识,了解大体后再进行深度学习,很nice! 4.虎课网:(https://huke88.com/album/2.html?se…