高并发

来源:互联网 发布:尼克松手表怎么样知乎 编辑:程序博客网 时间:2024/04/29 01:11

高并发解决办法

1、HTML静态化

         纯静态化的html页面效率最高、消耗最小,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。

优点:

访问速度快

缺点:

         生成大量文件需要时间长

         生成大量文件占用大量硬盘空间

         无法实现一些特别功能(比如显示随机文章,又不想使用JS调用)

2、图片服务器分离

         对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的、甚至很多台的图片服务器。

优点:

1、  分担Web服务器的I/O负载-将耗费资源的图片服务分离出来,提高服务器的性能和稳定性。

2、  能够专门对图片服务器进行优化-为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度。

3、  提高网站的可扩展性-通过增加图片服务器,提高图片吞吐能力。

图片服务器的注意事项:

1、  选择适合图片存储的物理介质和文件系统 

2、  使用物理上独立的服务器 

3、  如果拥有多台图片服务器,要考虑服务器之间的图片同步问题

4、  使用独立域名 

5、  制定合理的缓存策略 

6、  使用图片处理模块对用户上传的图片进行再加工 

 

3、数据库集群、库表分离(库表散列)、优化数据库结构,多做索引,提高查询效率

         大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。

         数据库集群分为三大类:高性能集群(High performance cluster,HPC)、负载均衡集群(Loadbalance cluster, LBC)、高可用性集群(High availability cluster,HAC)

         库表散列是常用并 且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。

        

4、缓存

         缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。

         Java开源缓存框架

         JBossCache/TreeCacheJBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行Jboss服务器之间的集群工作.

         OSCacheOSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。

         JCACHEJCACHE是一种即将公布的标准规范(JSR 107),说明了一种对Java对象临时在内存中进行缓存的方法,包括对象的创建、共享访问、假脱机(spooling)、失效、各JVM的一致性等。

         EhcacheEhcache出自Hibernate,在Hibernate中使用它作为数据缓存的解决方案。

         SwarmCacheSwarmCache是一个简单而功能强大的分布式缓存机制。它使用IP组播来有效地在缓存的实例之间进行通信。它是快速提高集群式Web应用程序的性能的理想选择。

         等。。

         创建索引的优点:

1、  提高系统的性能

2、  通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

3、  可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。

4、  可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

5、  在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

6、  通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

         创建索引的缺点:

1、  创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

2、  索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

3、  当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

5、镜像

         镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。

         优点:

                   分流作用:当一个网站的流量过高,服务器不能承受的时候,那么这时候就能起到给服务器减压分流的作用。

         缺点:

                   容易被搜索引擎识别为作弊手法,导致自己的站点受到影响。来回的切换比较麻烦。

6、负载均衡

         负载均衡将是大型网站解决高负荷访问和大量并发请求采用的高端解决办法。

目前使用最为广泛的负载均衡软件是Nginx、LVS、HAProxy

http://www.csdn.net/article/2014-07-24/2820837该链接介绍了三种负载均衡软件的优缺点及使用场景

0 0
原创粉丝点击