对于当今大流量的网站,每天几千万甚至上亿的流量,是如何解决访问量问题的呢?以下是一些总结的方法:
第一,确认服务器硬件是否足够支持当前的流量。
普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。
第二,优化数据库访问。
服务器的负载过大,一个重要的原因是CPU负荷过大,降低服务器CPU的负荷,才能够有效打破瓶颈。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。我自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。
如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用Select *from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。
第三,禁止外部的盗链。
外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在图片上增加水印。
第四,控制大文件的下载。
大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台服务器上。目前有不少免费的Web2.0网站提供图片分享和文件分享功能,因此可以尽量将图片和文件上传到这些分享网站。
第五,使用不同主机分流主要流量
将文件放在不同的主机上,提供不同的镜像供用户下载。比如如果觉得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服务将RSS输出放在其他主机上,这样别人访问的流量压力就大多集中在FeedBurner的主机上,RSS就不占用太多资源了。
第六,使用流量分析统计软件。
在网站上安装一个流量分析统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以。我推荐使用的流量分析统计软件是GoogleAnalytics(Google分析)。我使用过程中感觉其效果非常不错,稍后我将详细介绍一下GoogleAnalytics的一些使用常识和技巧
- 浏览: 515349 次
- 性别:
- 来自: 杭州
最新评论
-
leiguolin:
楼主明显的误导人啊
springMVC一个Controller处理所有用户请求的并发问题 -
zxp209:
局部变量,成员变量没搞清楚呢
springMVC一个Controller处理所有用户请求的并发问题 -
NiuBie:
如果方法里无局部变量,那么不受任何影响;如果方法里有局部变量, ...
springMVC一个Controller处理所有用户请求的并发问题 -
wx819648354:
然后这是jsp的代码,谢谢var userEm = new E ...
EXT提交表单 -
wx819648354:
这是servlet的方法,但是一直提交不过去,能帮我看下么pu ...
EXT提交表单
相关推荐
总的来说,高并发高负载数据库解决方案包括了从硬件优化、架构设计到特定技术的运用,每一步都是为了应对不断增长的访问压力,保证系统的稳定性和性能。在实际应用中,需要根据业务需求和资源限制灵活选择和组合这些...
### Java并发编程与高并发解决方案知识点总结 #### 一、并发与高并发基本概念 ##### 1.1 并发 - **定义**: 指一个程序在同一时刻拥有两个或更多的线程,这些线程可以在单核或多核处理器上运行。 - **单核处理器上...
但随着用户量、数据量和并发访问量的增加,单台服务器可能无法承受,升级硬件成本较高,且资源争抢会导致性能问题。 2. 分离部署:将Web应用和数据库分别放在独立的服务器上,这样可以分别优化和扩展,适用于中小...
针对高并发问题,业界已经发展出了多种有效的解决方案。下面将详细介绍几种常用的优化手段。 ##### 数据库缓存 **数据库缓存**是一种非常有效的方式来缓解数据库的压力,并提高系统的响应速度。通过将经常访问的...
本文将基于"java 高并发解决思路"这一主题,深入探讨相关知识点,并结合"高并发web架构.pdf"文档中的实例进行阐述。 1. **线程与并发基础** - **线程**:Java中的并发是通过线程实现的,每个线程代表程序的一个...
在探讨Java并发编程与高并发解决方案的过程中,我们会涉及到一系列核心概念和相关技术。本文将基于文档《Java并发编程与高并发解决方案-学习笔记***.pdf》中提供的内容,来详细阐述并发编程和高并发的基本概念、CPU...
Java并发编程与高并发解决方案是开发高性能应用的关键技术。在基础篇中,主要涉及以下几个重要知识点: 1. **并发编程基础** - **并发**:并发是指在一个时间段内,多个线程交替执行,使得系统看起来像是同时处理...
【IIS网站高性能高并发优化解决方案】 随着互联网项目的访问量逐渐增大,对于服务器的性能要求越来越高。在这种情况下,IIS(Internet Information Services)网站的优化显得尤为重要,特别是针对高并发场景。本文...
MySQL 数据库在面对高并发场景时,需要采取一系列优化措施以确保系统稳定性和性能。以下是一些关键的优化策略: 1. **短距离**:优化数据传输路径,减少数据库访问延迟。 - **页面静态化**:对于不常变化的页面,...
### 架构层面高并发解决方案 #### 基本概念 在探讨高并发解决方案之前,首先需要明确几个关键概念。 - **并发**:在操作系统中指的是一个时间段内多个程序同时处于运行状态,但在任何给定时刻只有一个程序在...
如何准备和规划核心交易系统架构的演进,包括架构演进的步骤和策略,这些都是为了保证系统能够在高并发和大数据量下依然保持高性能和可用性。 4. 轻量级与重量级电商网站应用架构的对比和优化。文档中提到了轻量级...
### JavaWeb并发编程与高并发解决方案 #### 一、并发编程概述 在现代软件开发中,尤其是对于基于JavaWeb的应用程序来说,面对大量的用户请求和数据处理任务时,高效的并发处理能力至关重要。并发编程旨在利用多...
在探讨Java并发编程与高并发解决方案之前,我们首先需要理解几个关键概念:并发(Concurrency)、高并发(High Concurrency)以及多线程(Multithreading)。这些概念是现代软件开发中不可或缺的一部分,尤其是在...
在互联网领域,网站经常会遇到大量的并发访问需求,这通常被称为“大访问量”或“高并发”。面对这种情况,单一服务器往往难以支撑巨大的访问压力,可能会出现响应延迟、宕机等问题。因此,解决大访问量问题变得至关...
本文将从高性能高并发服务器架构的优化心得、架构设计问题、负载均衡技术、开源平台的高并发集群思考等多方面详细介绍高性能高并发服务器架构的解决方案。 一、高性能高并发服务器架构的优化心得 高性能高并发...
综上所述,解决高并发问题需要综合考虑硬件、软件、数据库和前端等多个层面,通过优化各个组成部分,实现整体性能的提升。同时,持续监控和分析网站性能,根据实际情况调整策略,是保持系统稳定运行的关键。
《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,随书代码提供了大量示例,帮助读者深入理解并掌握在实际开发中如何处理高并发场景下的问题。本书的核心知识点涵盖了Java并发编程的基础理论、核心...
这些网站通常面临着大量的用户访问和高并发请求的压力。为了应对这些问题,业界普遍采用了一系列的技术方案来提升系统的稳定性和响应速度。本文将详细探讨如何构建能够支持高并发和高负载的大型网站系统架构。 ####...
### JAVA并发编程与高并发解决方案 #### 一、并发编程基础 ##### 1.1 并发的概念 在计算机科学中,并发是指多个任务或进程同时进行的现象。它不同于并行,后者指的是多个处理器或核心同时执行不同的指令。在Java中...