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

news/2024/5/20 23:22:28/文章来源:https://blog.csdn.net/weixin_34232363/article/details/92654005

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。

        说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程吧。

1、初始阶段的网站架构

            初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。

2、应用服务和数据服务分离

        随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图。

3、使用缓存改善网站性能

        毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。

4、使用应用服务器集群改善网站的并发处理能力

         因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。

 

5、数据库读写分离

         当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。

 

 

6、使用反向代理和CDN加上网站相应

       提高网站的访问速度,主要手段有使用CDN和反向代理。

      CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。

7、使用分布式文件系统和分布式数据库系统

    任何强大的单一服务器都满足不了大型网站持续增长的业务需求。

     分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上

 

8、使用NoSQL和搜索引擎

       搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

 

9、业务拆分

        大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。

         具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

 

 

10、分布式服务

       由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。

转载于:https://my.oschina.net/zhanghaiyang/blog/596084

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

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

相关文章

4个资源多到溢出来的在线网站,个个都是“上好佳”

现在人们对资源的需求很多,不管是图片资源还是电影、音乐、资源等。有需要就有对应的资源网站,如果你还没有好用的在线网站,可以看看下面的这些哦。一、图片——thestocks写文章总是找不到好看的、无版权的图片可用?这个网站已经帮…

IIS日志-网站运维的好帮手

对于一个需要长期维护的网站来说,如何让网站长久稳定运行是件很有意义的事情。 有些在开发阶段没有暴露的问题很有可能就在运维阶段出现了,这也是很正常的。 还有些时候,我们希望不断地优化网站,让网站更快速的响应用户请求&#…

《高扩展性网站的50条原则》

《高扩展性网站的50条原则》 基本信息 原书名:Scalability Rules: 50 Principles for Scaling Web Sites 作者: (美)Martin L.Abbott Michael T.Fisher [作译者介绍] 译者: 张欣 杨海玲 丛书名: 图灵程序设计丛书 出版社&#xff…

c++封装HTTP GET请求访问网站

运行环境&#xff1a;VS2013 功能&#xff1a;模拟浏览器访问百度 具体代码如下 #include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <sstream>#pragma comment(lib,"ws2_32.lib")int main() {//初始化配置WORD …

阻止某些网站打开调试就跳转

https://91mjw.com/&#xff0c;我想把视频地址扒出来单独播放&#xff0c;但是一打开调试就跳转。 https://www.cnblogs.com/jinyuu/p/11590343.html 测试页面&#xff0c;原理我还是不懂&#xff1a; <html> <title>打开调试就跳转</title> <style&g…

使用LAMP创建基于wordpress的个从博客网站

参考&#xff1a; http://blog.csdn.net/ck_boss/article/details/27866117 一、mysql配置1、安装mysqlyum install mysql-serverCentOS中已经默认安装&#xff0c;此步骤忽略。2、启动mysqlservice mysqld start3、登录mysql[rootjediael44 share]# mysql -u -root -p Enter…

GC日志分析工具网站

https://gceasy.io/gc-index.jsp 可以通过上传文件&#xff0c;也可以通过直接复制粘贴日志&#xff0c;进行分析。 堆分配&#xff0c;各个区域大小 GC停顿时间 GC过程分析 GC次数、GC时间统计值&#xff0c;最大值、最小值

程序员如何使用RSS订阅网站更新

很多国内程序员可能都有这种疑惑&#xff0c;去哪里看技术圈最新的消息&#xff1f;怎么知道厂都在用什么技术&#xff1f;做什么&#xff1f;怎么知道圈内最新的paper&#xff1f;怎么跟踪国内外技术大佬的博客&#xff1f; 如果你有上述这些疑惑&#xff0c;那么本文适合你读…

PHP——使用wordpress制作博客网站

1、wordpress软件下载地址&#xff1a;https://cn.wordpress.org/ 下载的wordpress程序可能和自己的php服务版本不配&#xff0c;运行报错如下&#xff1a; Your server is running PHP version 5.4.45 but WordPress 5.8 requires at least 5.6.20. 下载对应的wordpress版本或…

BeagleBone_Black常用网站及书籍

官方镜像地址 https://beagleboard.org/latest-images uboot 、kernel移植指导网站 https://www.digikey.com/eewiki/display/linuxonarm/BeagleBoneBlack TI官方SDK下载网站 适用于 AM335X Sitara™ 处理器的处理器 SDK http://www.ti.com.cn/tool/cn/PROCESSOR-SDK-AM335…

织梦自定义表单做网站在线留言

织梦自定义表单功能是十分强大的&#xff0c;用来做一些在线报名&#xff0c;在线留言&#xff0c;客户反馈等一些需要提交的后台的功能十分方便。操作起来也很简单&#xff0c;下面就一晴天做的一个在线留言功能为例&#xff0c;说下自定义表单怎样使用 1.登录织梦后台依次点击…

鼠标经过事件(onmouseover)

鼠标经过事件&#xff0c;当鼠标移到一个对象上时&#xff0c;该对象就触发onmouseover事件&#xff0c;并执行onmouseover事件调用的程序。 现实鼠标经过"确定"按钮时&#xff0c;触发onmouseover事件&#xff0c;调用函数info()&#xff0c;弹出消息框&#xff0c;…

一起来盘一盘,建站市场上主流的建站平台哪个更好用

自助建站系统的前身是CMS系统&#xff0c;在说自助建站之前&#xff0c;先一起聊聊CMS系统。 CMS是Content Management System的缩写&#xff0c;中文翻译过来是&#xff1a;"内容管理系统"。 在中国互联网的发展历程中&#xff0c;一直以来默默地为中国站长提供动…

新增57个全屏通栏一键添加,保存即用;助您分分钟生成大气时尚的网站。

新增57个全屏通栏一键添加&#xff0c;保存即用&#xff1b;助您分分钟生成大气时尚的网站。 1、关于我们&#xff08;5个&#xff09; 2、新闻动态&#xff08;5个&#xff09; 3、服务项目&#xff08;5个&#xff09; 4、案例&#xff08;6个&#xff09; 5、产品&#xff0…

八零云建站系统营销推广版网站、商城版网站、分销商城版网站、多商户入驻网站落地页

八零云建站系统营销推广版网站、商城版网站、分销商城版网站、多商户入驻网站落地页。 看图就行了

新手站长SEO进阶篇

1 服务商要关注客户网站收录量-新手站长SEO进阶篇 1) 为什么关注收录量&#xff1f; 访客通过关键词搜索到对应的网站页面&#xff08;俗称落地页&#xff09;&#xff0c;所以如果关键词要想获得排名&#xff0c;前提就是要有相应的落地页支持才行。同时落地页的内容要与关键…

Python Web学习笔记,电影网站

Python Web开发一、前言二、笔记2.1、Python 实战&#xff08;0&#xff09;&#xff1a;初识 web.py2.2、Python 实战&#xff08;1&#xff09;&#xff1a;在网页上显示信息2.3、Python 实战&#xff08;2&#xff09;&#xff1a;简单的数据库2.4、Python 实战&#xff08;…

网站跨域的五种解决方案

前言 什么是跨域&#xff1a; 跨域&#xff1a;即浏览器请求域名与Ajax请求的域名不一致。它是由浏览器的同源策略造成的&#xff0c;是浏览器的一种安全机制&#xff01;同源策略&#xff1a;域名、协议、端口均相同。场景&#xff1a;一般浏览器发送Ajax请求的使用经常遇到…

网站如何识别 你是 selenium爬虫?那我们怎么解决(反反爬)

我们经常会拿selenium进行自动登录来搭建cookie池&#xff0c;对于不想自己网站被爬的站主/开发人员来说&#xff0c;防止自动化脚本操作网站自然是反爬必须要做的工作。那么&#xff0c;他们究竟有哪些手段来检测用户是否是selenium呢&#xff1f;今天就来总结一下常见的识别s…

教你用github pages搭建个人网站

&#xff08;1&#xff09;新建仓库 ok&#xff0c;首先你需要一个github的账号&#xff0c;立志作为一名优秀的程序员&#xff0c;这个账号是应该有的&#xff0c;如果没有赶快申请一个。 有了账号以后&#xff0c;首先点击新建仓库&#xff0c;如图&#xff1a; 然后到达仓…