《大型网站技术架构》个人浅析

news/2024/5/9 14:33:30/文章来源:https://blog.csdn.net/BertonYip/article/details/88776284

计划每周写一篇个人浅析,不论技术深浅,算是一种每周小结,也算是对最近学习到的知识的一种分享。

本文是笔者看《大型网站技术架构》刚好两个星期后,觉得在视野或知识广度上收货颇多,所以想要写写个人见解。

 

前言、

在生活中一般来说,我们向往的是“大”或者说“多”,反正就是要好, 即公司要大,Money要多,身体要好等等,那么对于技术架构来说,没有用过的才是最爽的,当熟练掌握一个框架后(具体满意程度看个人追求),那么学习的目标就变成了下一个框架,对于架构设计也是,当小型架构掌握了搭建及优化以后, 就去追求大型架构的搭建以及优化。所以这本书也是一开始站在小型设计但速度极快地转移到至高点的角度来讲架构设计,不过,书名本来就叫做《大型……》,所以一切以高并发、海量数据、N个模块业务的情况下讲解。

整体来说,所有的架构设计,都为了实际业务服务,即都是为了系统的可用性、性能、可伸缩性、可扩展性、安全性、安全在做架构设计。

 

 

一、前台请求到应用服务器的过程

用户请求网址如www.baidu.com(这一步可以进行CDN加速(网络第一跳))----->通过DNS域名解析(第一级负载均衡)------>负载均衡服务器集群(第二级负载均衡)------>应用服务器集群(分布式业务部署)--------->分库分表的数据库Cobar代理服务器集群---------->关系型数据库集群

一般来说是这么个过程, 但不止这些, 诸如缓存服务器集群、NoSQL数据库集群,我们一点一点来说。

 

1、CDN加速

CDN(Content Distribute Network,内容分发网络)的本质是一种缓存,而且把数据缓存在离用户最近的地方,使用户在最快的情况下获取数据,即所谓的网络第一跳。CDN服务器部署在网络运营商的机房,这些运营商又是用户的网络提供商,所以用户请求服务时,第一跳则到了CDN服务器,当CDN中存在该次请求中需要的数据时,则最短路径返回,加快用户访问速度,一般来说,CDN服务器放置一些高频访问的静态资源。(如图片、文件、CSS、Script脚本、静态页面等)

CDN加速我的理解下是一种缓存服务器地域部署手段,我们知道当业务、企业足够大时,服务器不可能只是在某个城市集中,这是因为网络通讯在一定程度上来说是越远越慢,所以当用户遍布全国或全球时,需要在用户请求的当地服务商处建立就近的静态资源缓存服务器。

 

2、DNS域名解析

一个以域名形式的请求,最终只会被解析成一个IP,但是在域名服务商那里,你可以把服务器群里面的多个提供相同服务的服务器IP设置一个域名可以轮询,这些IP可以轮流着被解析。只需要在DNS服务器中配置多个记录,如:www.baidu.com   IN  A  100.0.0.1、www.baidu.com   IN  A  100.0.0.2、www.baidu.com   IN  A  100.0.0.3。

每次域名解析的时候都会通过负载均衡算法计算一个不同的IP进行返回,这样就可以实现第一个层级的负载均衡。一般来说,通过DNS解析得到的IP,是第二级负载均衡服务器的集群。

 

3、负载均衡服务器集群

负载均衡的手段有很多种:Http重定向负载均衡、DNS域名解析负载均衡、反向代理负载均衡、IP负载均衡、数据链路层负载均衡,各自有各自的负载均衡算法。所以也实现了不同方式的负载均衡。

3.1 Http重定向负载均衡

当用户请求域名时,通过DNS解析得到IP,此IP访问的是Http重定向负载均衡服务器,Http重定向负载均衡服务器根据负载均衡算法计算出一台真实的应用服务器,并将该应用服务器地址写入Http重定向响应中(响应状态码302)返回给用户浏览器,浏览器再自动重新请求实际的物理应用服务器进行访问。

这种负载均衡的优点是比较简单,缺点是二次请求性能比较差、且302重定向会使搜索引擎可能认为是SEO作弊,降低搜索排名。

 

 

3.2 反向代理负载均衡

反向代理服务器一般来说有两种作用, 第一种是缓存, 第二种是负载均衡。由于起转发请求在HTTP协议层面,所以也叫应用层负载均衡。

用户请求反向代理服务器,而反向代理服务器具备双网卡(内部+外部),通过负载均衡算法计算出请求转发的IP地址,进行请求转发,当业务处理结束后物理应用服务器返回给反向代理服务器,再由反向代理服务器返回给用户浏览器。

优点: 部署简单 

缺点:反向代理服务器是请求转发和响应的中心位置,性能可能成为架构的瓶颈。

 

3.3 IP负载均衡

主要原理如图所示: 早网络层通过修改请求目的地址进行负载均衡。

这里的关键是应用服务器集群的响应数据包如何返回负载均衡服务器,有两种方案:①在负载均衡请求数据目的IP地址时,将请求的源地址换成负载均衡服务器的IP地址即源地址转换(SNAT)技术。①把负载均衡服务器同时作为物理应用服务器的网关服务器,这样所有的响应数据都会达到负载均衡服务器。

优点: 在内核进程进行数据分发,比反向代理来说有更好的性能

缺点:所有的请求和响应都依赖于负载均衡服务器,所以系统的最大吞吐量受限于负载均衡服务器的网卡带宽。

 

 

3.4 数据链路层负载均衡

数据链路层的负载均衡指在通信协议的数据链路层修改mac地址进行负载均衡。

这种数据传输方式又被称为三角传输模式,负载均衡的过程中不修改IP地址,只修改目的的mac地址,通过配置物理应用服务器集群的所有服务器的虚拟IP与负载均衡服务器的IP一致,使得返回时不需要经过负载均衡服务器的IP转换,可将数据包直接返回给用户浏览器,而不需要通过负载均衡服务器,避免网卡带宽成为瓶颈,这种负载均衡方式又叫“直接路由(DR)方式”。

用户请求负载均衡服务器,通过算法计算出访问的mac地址为00:0c:29:d2 , 从而修改数据目的mac地址进行访问,返回时因为不需要修改返回IP故直接返回用户浏览器。

使用三角传输模式是大型网站较为广泛使用的一种负载均衡手段。

 

 

 

 

 

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

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

相关文章

java-SpringBoot 实现微信扫码登录(网站应用)-前后端分离

1 微信开放平台(https://open.weixin.qq.com/)资质认证并申请创建网站应用,拿到appId和appSecret以及回调url,已有的可跳过 2 后端将获取扫码用的二维码地址返回给前台 Override public Response getWechatQrCode() {try {LOGGER.info("开始获取微信登录二维码:");St…

windows服务器下从零开始用wordpress一步步建站(适合新手)

windows服务器下从零开始用wordpress一步步建站(适合新手) wordpress介绍购买云服务器远程连接服务器下载安装XAMPP和wordpress搭建网站欢迎关注微信公众号:Java后台开发 wordpress介绍 WordPress是使用PHP语言开发的博客平台,当…

11款网站死链检测工具

11款网站死链检测工具 发表于 2013-12-13 17:29| 1751次阅读| 来源 Webdesigntalks| 8 条评论| 作者 Jason Smith 工具 网站 链接 摘要:网站中出现断链或死链,会导致部分资源无法访问,出现404报错,影响SEO。我们可以通过下面的11款…

利用Yslow查看网站性能

安装Yslow必须打开firefox,安装Firebug,然后下载YSlow,再进行安装。 重新打开Firefox浏览器,点击F12就能查看Yslow对网站页面进行的分析。

网站检测该注意的点

一、服务器响应代码 有几个服务器响应代码,会影响你进行搜索引擎优化,例如301、302和404。这些数字是指运行服务器指令,当用户试图请求一个页面。这些反应可能是301、302、或404这意味着请求的页面不存在。一个301响应代码意味着请求的页面已被永久地搬到一个新的位置&#xff…

chrome模拟手机访问网站

方法如下: 1、打开chrome浏览器,快捷键F12打开“开发者工具”。 2、在“开发者工具”界面的右侧有个“Show drawer”按钮,点击后在“drawer”界面再点击“Emulation”. 3、Device里面可以选择各种手机或者平板设备。点击“Emulate”按钮就可…

去掉网站首页index.html对排名有影响吗

去掉网站首页index.html对排名有影响吗?平时会遇到的一个情况,新站捡起来了,首页网址还有面带个index.html,index.html其实就是导航页的特点后缀,没有什么其他意义或者格式错误之类的问题。很多人都有问,首页怎么去掉index.html,在去掉之前,我们得弄清楚为什么要去掉首…

如何合理布局网站关键词

如何合理布局网站关键词:要做好网站优化,懂得合理布局网站关键词很重要。而我们平时写网站优化方案或是开始新站的网站优化,可以先从合理布局网站关键词开始。今天常州seo和大家谈如何合理布局网站关键词。 网站每个页面的等级权重不同&#…

稳定网站更新频率能提升百度排名?

稳定网站更新频率能提升百度排名?今天在phpwind论坛看到很多人讨论网站更新频率和百度排名的关系。有认为网站稳定更新频率可以提升SEO百度排名,也有人觉得网站稳定更新频率对百度排名没什么要多影响,对网站来说有利也有弊吧。 你要问我是什么想法,常州SEO觉得,一部分网站…

合格的SEO是宏观方向与微观操作的统一

合格的SEO是宏观方向与微观操作的统一:一名合格的SEO需要具备什么样的能力,很多人一直在思考这个问题。能够理出合理的优化方案?两个月相关关键词做上首页?每天写原创文章和有效外链的发布?这些都是SEO工作&#xff0c…

网站优化要坚持“三到”原则

网站优化要坚持“三到”原则:从开始做网站优化这份工作开始就一直听说SEO需要坚持,耐心。自己在优化工作的实践中也切实体会到坚持对于网站优化的重要性。而光坚持,却不知道如何坚持,确实是很多seoer头疼问题。坚持是seo工作中执行力的直接体…

企业网站优化用户体验以内容为主

企业网站优化用户体验以内容为主:如果用权威性的言语来讲企业网站优化用户体验怎么做的话,那百度官方的这句话很适合:是否是真心为用户去编辑他们想要的内容,是否具有高质量的原创内容。 企划网站优化用户体验是以内容为和核心的&…

如何对网站排名进行优化?带你深入理解SEO

一位爱好技术的橘右京的某个哥哥橘左京SEO介绍 SEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜素引擎内的自然排名。目的是让其在行业内站在领先地位,获取品牌…

使用Teleport 进行网站扒取

工具使用 1.安装完成后,打开软件,新建项目向导 2.根据选择需要的模式,个人建议使用第二个,扒取所有目录 3.输入项目地址,如果需要越详细的页面,可以层数设置的大一点 4.选择文件类型 5.完成配置 6.将项目保…

机器学习实战k-近邻算法(kNN)应用之改进婚恋网站配对效果代码解

一.背景简要说明 问题背景不再详细赘述了,《机器学习实战》中有详细介绍,利用KNN想做的就是训练出一个分类器,能根据对方的一些特征判断他(她)对你的吸引程度,是不喜欢,还是一般喜欢&#xff0c…

我在B站学通过HUGO搭建网站

我在下载主题的时候遇到了GIT的问题, 错误是 git不是本地或内部指令 1、新建一个目录,存放下载下来的项目,我在D盘新建了一个“gitspace”文件夹,用来存放下载下来的项目 2、进入刚刚新建的文件夹,即进入“gitspace”…

基于vue框架Vant UI组件库移动端电商网站webapp项目总结

项目总结 一、项目名称 电商网站webapp开发二、技术栈 框架:vue框架 UI组件:Vant移动端Vue组件库安装:npm install vant -S项目中引用的部分组件:1、Tabbar标签栏:封装成底部标签栏,引入到其他组件中&am…

合作网站

我有兴趣并且现在也学习的不错了,html ,asp还自我感觉可以,做了一两个网站都是一两个页面,现在是在想真正做一个好的,但是一个人是很难做出来的。 没有时间,每天还得搞定那几门功课,所以想和志同…

nginx启用gzip(提升网站性能)

nginx服务器启用gzip可以对客户端请求的资源进行压缩,从而减少带宽和文件下载时间,提升网站加载速度。nginx关于gzip的配置内容如下: # 开启gzipgzip on;# 允许压缩文件的最小字节数,大于该阈值即可被压缩gzip_min_length 1024;# …

基于element的网站自适应方案(移动端适配)

一般而言,管理系统类的网站我们往往会按照PC的标准来设计,不会去考虑小屏幕的适配,甚至是移动端的适配,因为这种系统网站往往涉及到大量的列表查询页(表格列往往很多,列内容长短不一)&#xff0…