在大型网站开发和设计过程中,非常需要考虑的问题是网站的并发访问的问题,为此我也通过思考,通过借鉴前辈们设计思想,总结出一些解决方案:
1、尽量将请求的页面静态化,静态化的页面为.html(.htm等)不需要web服务器重新加载项解析,只需要生成一次,以后每次都直接下载到客户端,效率高很多。javaWeb静态化的技术有freemark和Velocity等。
2、将网站系统的web服务器、数据库服务器、图片和文件服务器分开,通过将服务器专业化分工,以提高网站访问速度。因为图片和文件在下载的时候无论是IIS、Apache等服务器都会有很大压力。
3、可以设置专门的数据缓存服务器,将大量数据放到缓存数据区,在访问量少得时候存入数据,减少连接直接操作数据库的开销。
4、数据库集群、库表散列
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很
快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。 在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的
MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。
上面提到的数据库集群由于在架构、 成本、 扩张性方面都会受到所采用DB类型的限制,于是我们需要
从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。
我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或
者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表
散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。
sohu的论坛就是采用了这样的架构,将论坛的用户、 设置、 帖子等信息进行数据库分离,然后对帖子、
用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一
台低成本的数据库进来补充系统性能。
5、镜像
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域
带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站
点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解
决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。
6、负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的高端解决办法。
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,
其中有两个架构可以给大家做参考。
(1)、硬件四层交换 第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务
流分配到合适的应用服务器进行处理。
第四层交换功能就像是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有
HTTP、 FTP、 NFS、 Telnet或其他协议。 这些业务在物理服务器基础上,需要复杂的载量平衡算法。 在IP世界,
业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、 TCP和
UDP端口共同决定。
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是
物有所值,能够提供非常优秀的性能和很灵活的管理能力。 “Yahoo中国”当初接近2000台服务器,只使
用了三、四台Alteon就搞定了。
(2)、软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解
决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其
实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基
于心跳线heartbeat的实时灾难应对解决方案,提高系统的强壮性,同时可供了灵活的虚拟VIP配置和管
理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路
在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面
增减节点都非常容易。
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,这里介绍得比较浅显,具体实现过
程中很多细节还需要大家慢慢熟悉和体会。有时一个很小的squid参数或者apache参数设置,对于系统性
能的影响就会很大。
7、最新:CDN加速技术
什么是CDN?
CDN的全称是内容分发网络。 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内
容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流
量导流。 因而,CDN可以明显提高Internet网络中信息流动的效率。 从技术上全面解决由于网络带宽小、 用
户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。
CDN的类型特点 CDN的实现分为三类:镜像、高速缓存、专线。
镜像站点(Mirror Site),是最常见的,它让内容直接发布,适用于静态和准动态的数据同步。 但是购
买和维护新服务器的费用较高,还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。
对于大型网站来说,更新所用的带宽成本也大大提高了。
高速缓存,成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的
网站的内容,在这个规律下,缓存服务器可以处理大部分客户的静态请求,而原始的服务器只需处理约
20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的负载。
CDN服务一般会在全国范围内的关键节点上放置缓存服务器。
专线,让用户直接访问数据源,可以实现数据的动态同步。
CDN的实例
举个例子来说,当某用户访问网站时,网站会利用全球负载均衡技术,将用户的访问指向到距离用户
最近的正常工作的缓存服务器上,直接响应用户的请求。
当用户访问已经使用了CDN服务的网站时,其解析过程与传统解析方式的最大区别就在于网站的授
权域名服务器不是以传统的轮询方式来响应本地DNS的解析请求,而是充分考虑用户发起请求的地点和
当时网络的情况,来决定把用户的请求定向到离用户最近同时负载相对较轻的节点缓存服务器上。
通过用户定位算法和服务器健康检测算法综合后的数据,可以将用户的请求就近定向到分布在网络“
边缘”的缓存服务器上,保证用户的访问能得到更及时可靠的响应。
由于大量的用户访问都由分布在网络边缘的CDN节点缓存服务器直接响应了,这就不仅提高了用户
的访问质量,同时有效地降低了源服务器的负载压力。
附:某CDN服务商的服务说明
采 用 GCDN 加 速 方 式
采用了GCDN加速方式以后,系统会在浏览用户和您的服务器之间增加一台 GCDN服务器。浏览用户
访问您的服务器时,一般静态数据,如图片、多媒体资料等数据将直接从 GCDN服务器读取,使得从主服
务 器 上 读 取 静 态 数 据 的 交 换 量 大 大 减 少 。
为VIP型虚拟主机而特加的 VPN高速压缩通道,使用高速压缩的电信<==>网通、电信<==>国际
(HK)、 网通<==>国际(HK)等跨网专线通道,智能多线,自动获取最快路径,极速的动态实时并发响
应 速度 ,实 现了 网站 的动 态脚 本实 时同 步, 对动 态网 站有 一个 更加 明显 的加 速效 果。
每个网络运营商(电信、 网通、 铁通、 教育网)均有您服务器的GCDN服务器,无论浏览用户是来自何
处,GCDN都能让您的服务器展现最快的速度!另外,我们将对您的数据进行实时备份,让您的数据更安
全
分享到:
相关推荐
在Web开发中,面对网站高并发访问的问题,开发者需要采取一系列策略来确保系统的稳定性和高效运行。以下是一些常见的解决方案: 1. **静态化页面**:对于动态生成的网页,可以将其转换为静态HTML文件,如`.html`或`...
但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。 上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张...
综上所述,解决高并发问题需要综合运用多种技术和策略,根据具体业务场景选择合适的方法,不断优化和调整,以达到系统性能的最大化。文件"2016"可能包含的是2016年关于高并发解决方案的资料,深入学习这些资料,可以...
互联网高并发解决方案互联网高并发解决方案互联网高并发解决方案
《高并发网站解决方案:应对海量数据处理挑战》 在当今数字化时代,互联网应用与服务面临着前所未有的挑战,尤其是高并发场景下的数据处理能力。本文基于《高并发网站解决方案.doc》的文档内容,深入探讨了在高并发...
这种组合方式不仅可以提升系统的响应速度,还能保证在高负载情况下的稳定性,是解决.NET环境高并发问题的一种有效策略。开发者在实际应用中,还需要根据业务需求和系统架构,适当调整和优化这两个工具的使用方式,以...
大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高 性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。这几个解决思路在一定程度上意味...
针对高并发问题,业界已经发展出了多种有效的解决方案。下面将详细介绍几种常用的优化手段。 ##### 数据库缓存 **数据库缓存**是一种非常有效的方式来缓解数据库的压力,并提高系统的响应速度。通过将经常访问的...
【IIS网站高性能高并发优化解决方案】 随着互联网项目的访问量逐渐增大,对于服务器的性能要求越来越高。在这种情况下,IIS(Internet Information Services)网站的优化显得尤为重要,特别是针对高并发场景。本文...
在构建大型高并发的网站时,...以上知识点都是大型高并发网站解决方案中不可或缺的部分。在实际项目中,需要根据业务需求、现有基础设施和技术团队能力,综合考虑并灵活应用这些策略,以构建稳定、高效的网站系统。
MySQL 数据库在面对高并发场景时,需要采取一系列优化措施以确保系统稳定性和性能。以下是一些关键的优化策略: 1. **短距离**:优化数据传输路径,减少数据库访问延迟。 - **页面静态化**:对于不常变化的页面,...
1、高并发下服务稳定性。流量削峰:LRUK(自动识别&存储热点数据,QPS增加4倍,响应时间未见变化)、被动限流降压(中间层A系统并发平均降了14w/分钟,最高降了23w/分钟,回收了7台虚拟机(共21台)) 、操作异步化、分流...
本文将基于"java 高并发解决思路"这一主题,深入探讨相关知识点,并结合"高并发web架构.pdf"文档中的实例进行阐述。 1. **线程与并发基础** - **线程**:Java中的并发是通过线程实现的,每个线程代表程序的一个...
总的来说,通过结合Redis的乐观锁机制、连接池优化和分布式锁,我们可以有效地解决高并发环境下的连接超时和超卖问题,保障系统的稳定性和正确性。在实际项目中,还需要根据具体业务需求和系统架构进行调整和优化。
首先,数据库的设计是解决高并发问题的关键。一种常见的方法是采用读写分离策略,即将读操作和写操作分配到不同的服务器上。这样可以减轻主数据库的压力,因为读操作通常比写操作多,且不会改变数据状态。此外,可以...
高并发是指在同一个时间点,有很多用户同时访问URL地址,比如:淘宝的双11、双12,就会产生高并发。又如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击。服务端:导致站点服务器/DB服务器资源被占满崩溃,数据的...
在处理高并发问题时,一种常见的解决方案是使用【镜像网站】,通过在全球不同地区设置多个相同内容的服务器,用户可以从最近的服务器获取内容,降低延迟,提高响应速度。另一种技术是【CDN内容分发网络】,通过...
本文将从高性能高并发服务器架构的优化心得、架构设计问题、负载均衡技术、开源平台的高并发集群思考等多方面详细介绍高性能高并发服务器架构的解决方案。 一、高性能高并发服务器架构的优化心得 高性能高并发...