很多朋友对于网站服务架构和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
代理服务器:一般使用linux+Nginx作为反向代理
Web服务器:net中最常用的Web服务器是IIS,Mono中一般使用Nginx。
应用服务器:负责提供系统中的各种业务逻辑,如用户中心、结算中心、支付中心等。
缓存服务器:提供MemCached缓存服务
数据库服务器:负责提供网站数据,通常是Sqlserver、mysql、oracle等。
带宽的计算
假设网站每天要承受100万PV访问量,则带宽的计算涉及两个指标(峰值流量和平均页面大小),带宽单位为bps(bit/s)。
1、假设峰值流量是平均流量的5倍;
2. 假设每次访问的平均页面大小约为100KB。
1B=8b————————–1B/s=8b/s(1Bps=8bps)
1KB=1024B ————- 1KB/秒=1024B/秒
1MB=1024KB————1Mps=1024KB/秒
每天平均分布100 万次pv 访问量,相当于每秒约12 次访问。页大小以字节为单位。访问的总页面大小为12*100KB=1200KB,1Byte=8bit,那么1200KB=9600Kb,9600Kb/1024约为9Mb/s(9Mbps)。我们的网站要在流量高峰时保持正常访问,所以真实的带宽应该在9M*5=45Mbps左右。
网站架构的演变过程之一
公司刚刚起步,业务量不大。通常可以从某个虚拟主机空间提供商那里租用虚拟主机和数据库来构建一个基本的网站。
网站架构的演变过程之二增加缓存
随着业务量增大,用户访问量越来越多,网站经常打不开、速度慢,甚至达到数据库链接数上限。这时就需要对网站实施一些优化策略:
减少Http请求的大小,压缩css、js、图片。将Microsoft Ajax Minifier 集成到VS2010 中,对JS 和CSS 进行编译时压缩。增加页面缓存,增加数据缓存处理。 cnblogs上的完整缓存分析。自购服务器用于IDC托管。自购服务器。可以提高硬件水平,并且可以自由控制带宽。一般是独占带宽,比共享带宽可以支持更多的访问。
网站架构的演变过程之三增加web服务器
当系统访问量再次增加时,webserver机器的压力会在高峰时上升到一个比较高的水平。这个时候我们就开始考虑添加一个WebServer。但是,添加WebServer意味着我们需要分别建立两台服务器。如果使用同一个站点,会出现以下问题:
如何分配对这两台机器的访问? nginx
如何保持状态信息同步,比如用户会话等?
通常考虑的解决方案包括写入数据库、打开状态服务器、cookie、写入缓存等。
如何保持数据缓存信息同步?
缓存服务器
如何才能让上传文件等类似功能继续正常工作?
使用文件服务器统一管理
网站架构的演变过程之四分库,分表,分布式缓存
在享受了添加Web服务器快速访问的快乐后,我发现系统又开始变慢了。经过查找,发现数据库写入和更新这些操作中对数据库连接资源的竞争非常激烈,导致系统发生变化。等等,我们现在该怎么办?
分馆
子表
Memcache、Redis分布式缓存
架构演变过程之五Web园或增加更多WebServer
完成分库分表工作后,数据库压力已降至较低水平。这个时候,可能就会到达下一个瓶颈。检查Windows的性能计数器,发现有大量的阻塞请求,因此可以创建一个网络花园。或者添加一些网络服务器。在添加Web服务器的过程中,可能会出现以下问题:
Nginx服务器的软负载已经无法承受巨大的Web访问量。可以使用硬件负载来解决F5,也可以对应用程序进行逻辑分类,然后分布到不同的软负载集群中。
原有的一些状态信息同步、文件共享等解决方案可能存在瓶颈,需要改进。或许这个时候会根据情况编写一个满足网站业务需求的分布式文件系统;
完成这些任务后,我们开始进入一个看似完美的无限可扩展的时代。当网站流量增加时,解决方案是不断添加网络服务器。
架构演变之六读写分离和廉价存储方案
在享受了添加Web服务器快速访问的快乐后,我发现系统又开始变慢了。经过查找,发现数据库写入和更新这些操作中对数据库连接资源的竞争非常激烈,导致系统发生变化。慢了,我现在该怎么办?阅读与写作、订阅与发布分开。
廉价存储方案Nosql
NoSQL=Not Only SQL 指的是非关系型数据库。随着互联网web2.0网站的兴起,传统的关系型数据库已经无法应对web2.0网站,尤其是超大规模、高并发的SNS型web2.0纯动态网站,暴露出许多难以克服的问题。非关系型数据库由于其自身的特点,发展非常迅速。
NoSQL数据库广泛应用于微博系统等事务性较低的系统中。
大表
MongoDB
http://tech.it168.com/topic/2011/10-1/nosqlapp/index.html
架构演变之七进入大型分布式应用时代和廉价服务器群梦想时代
CDN内容分发网络
什么是CDN?
CDN的全称是Content Delivery Network,即内容分发网络。其目的是在现有的互联网上增加一层新的网络架构,将网站内容发布到距离用户最近的网络“边缘”,使用户就近获取所需内容,解决Internet网络拥塞,提高响应速度。访问该网站的用户。从技术上综合解决网络带宽小、用户访问量大、网点分布不均等原因,解决用户访问网站响应速度慢的根本原因。
狭义上,内容分发网络(CDN)是一种新型的网络建设方式。它是专门针对在传统IP网络上发布宽带富媒体而优化的网络覆盖;而从广义上讲,CDN代表了一种基于质量和秩序的网络服务模式。简单来说,内容分发网络(CDN)是一个战略部署的整体系统,包括分布式存储、负载均衡、网络请求重定向和内容管理四个要素。内容管理和全局网络流量管理(Traffic Management)是CDN的核心。通过判断用户邻近度和服务器负载,CDN 确保以极其高效的方式为用户请求提供内容。一般来说,内容服务基于缓存服务器,也称为代理缓存(Surrogate),它们位于网络边缘,距离用户仅“单跳”。同时,代理缓存是内容提供商的源服务器(通常位于CDN服务提供商的数据中心)的透明镜像。这种架构使CDN 服务提供商能够代表其客户(即内容提供商)向无法容忍请求响应时间任何延迟的最终用户提供尽可能最佳的体验。据统计,使用CDN技术可以处理整个网站页面70%到95%的内容访问,减轻服务器的压力,提高网站的性能和可扩展性。
CDN 的工作原理
在描述CDN的实现原理之前,我们先看一下传统的非缓存服务的访问流程,以便了解CDN缓存访问和非缓存访问的区别:
从上图可以看出,用户访问不使用CDN缓存的网站的进程为:个
1)。用户向浏览器提供要访问的域名;
2)浏览器调用域名解析函数库解析域名,获取域名对应的IP地址;
3)浏览器使用获取到的IP地址和域名的服务主机发出数据访问请求;
4).浏览器根据域名主机返回的数据显示网页内容。
CDN通俗的理解就是网站加速,可以解决跨运营商、跨地区、服务器负载能力低、带宽太少等造成的网站打开速度慢等问题。网宿、锐江、蓝讯
一致性Hash算法
在分布式架构中,节点故障是不可避免的。当节点增加或删除时,大量的哈希数据将变得无效,需要重新哈希。这意味着丢失的数据必须在数据库中请求一次,然后才能根据hash(key)/服务器数量=服务器数量重新哈希并缓存在相应的服务器上。这对高流量系统产生巨大影响。人们利用一致性Hash来解决此类问题
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/113712.html
用户评论
身影
这篇文章写的太棒了!我对网站服务架构一直不太了解,你的解释很透彻,把复杂的概念用通俗易懂的话讲清楚了,我终于明白了怎么搭建一个可靠、高效的网站服务架构!
有14位网友表示赞同!
你与清晨阳光
网站服务架构确实是个重要的课题,需要考虑很多因素,比如用户体验、安全性、稳定性等等。我特别关注你提到“微服务”的概念,这个在现代软件开发中越来越受欢迎,看来未来网站服务架构的发展趋势是越来越复杂化。
有11位网友表示赞同!
∞◆暯小萱◆
对于像我这样还在学习web开发的新手来说,这篇文章简直太棒了!虽然有些概念还是比较抽象的,但总体上能让我了解到网站服务架构的整体结构和发展趋势。希望能看到更多关于具体技术实现的深入讲解。
有16位网友表示赞同!
我家的爱豆是怪比i
我觉得文章中对不同类型网站服务架构的介绍比较全面,涵盖了很多主流方案。但是,对于一些较为专业的技術细节,还是可以更详细地介绍一下,这样对想要深入了解的人更有帮助。
有6位网友表示赞同!
早不爱了
我感觉这篇文章偏向于理论化描述,缺乏实际应用案例的支持,很难让人真正理解网站服务架构的应用场景和具体实施流程。建议结合一些真实项目进行讲解,会更加生动有趣。
有11位网友表示赞同!
权诈
我一直想了解一下网站服务架构是如何影响网站性能的,这篇博客让我有一些启发!特别是提到缓存机制和负载均衡的重要性,这对于提升用户体验绝对不可忽视。
有8位网友表示赞同!
病态的妖孽
我觉得文章中关于安全性评估的内容比较重要,因为现在网络攻击越来越频繁,确保网站服务的安全性是重中之重。不过,我有点疑问,怎么才能做到安全防护的全面性和可持续性呢?
有9位网友表示赞同!
冷月花魂
网站服务架构确实是一门涉及很多领域的知识,需要对软件工程、网络技术、数据库管理等等都有一定的了解。这篇文章让我感觉学习起来压力很大…
有18位网友表示赞同!
寂莫
对于我来说,一个简洁易懂的网站架构才是最重要的!这篇博客让我了解到了一些比较先进的架构模式,但是如果想在小型项目中使用这些模式,是不是需要考虑一些成本和复杂性呢?
有12位网友表示赞同!
挽手余生ら
我觉得文章总结出了主流网站服务架构的特点,但是并没有深入分析每个架构的优缺点以及适用场景。对于想要选择合适的架构的人来说,这样的描述还比较笼统。
有13位网友表示赞同!
熟悉看不清
我关注到这篇文章提到云计算在网站服务架构中的应用,确实是一个很有前景的发展趋势。我想问问,有没有一些具体的云平台案例可以参考?
有17位网友表示赞同!
我的黑色迷你裙
作为一名前端开发工程师,我对背后运行的网站服务架构一直比较好奇。这次终于能通过这篇博客了解一些基础知识了!特别是关于前端与后端的接口交互,希望以后能够学习更多相关技术。
有20位网友表示赞同!
遗憾最汹涌
我最近在做一个电商平台,需要搭建一个高效、稳定的网站服务架构。这篇文章让我有了很多新的想法,特别是你提到“可扩展性”的重要性,看来要提前考虑网站未来的发展方向啊!
有8位网友表示赞同!
厌归人
感觉文章写的比较深入,对一些细节的讲解还是很有用的。但是对于初学者来说,可能有些概念比较难理解。建议可以加入一些图示或者代码示例,让内容更加直观易懂。
有6位网友表示赞同!
你身上有刺,别扎我
网站服务架构确实是一个重要的方面,我希望以后能看到更多关于网站微服务的分析和比较,以及不同技术栈的应用案例。
有20位网友表示赞同!
花开丶若相惜
这篇文章对我目前正在学习的领域很有帮助,希望作者能够继续创作,分享更多的知识!
有12位网友表示赞同!
泪湿青衫
文章内容较为专业,我需要花些时间再仔细阅读一下才能彻底理解。希望作者能结合一些实际案例进行说明,这样就能更直观地掌握网站服务架构的应用场景。
有17位网友表示赞同!