关于大访问量、高性能、高稳定性网站建设的个人意见 (转)

目前接洽了一个网站的建设,涉及到标题所述问题的讨论,个人想了一下,提出以下几点想法。

这是一个综合性的问题。达到这一目标并非单一方面做的好、完美就可以解决的。

1.       高访问量的处理,首先需要硬件支持,交换机分流服务器集群做负载是跑不了的。暂且不提,在网站结构设计上,有以下几个方面需要做好。

a)         静态化处理大部分页面结构。例如使用cms系统生成页面内容,服务器的压力会减轻很多。

b)         使用缓存,仅仅在访问量高的问题上,可以使用自己制作cache,也可以调试、配置web服务器cache,还可以使用第三方例如memcache等组件。

c)         服务器分组分类,db服务器专门负责db,甚至读写db可以分开,如果数据逻辑不复杂可以采用nosql比如MongoDB等。图片服务器专门负责图片,文件服务器专门负责文件等等。

2.       高性能的处理。

a)         缓存是不得不用的主要手段之一。缓存可以提高访问响应速度,提高网站整体性能。而缓存在提高性能上又分为几个层次,

                         i.              前台缓存,属于细节,可以配置前台页面可在客户端缓存;

                       ii.              服务器端缓存,例如使用web服务器,打开apacheMPM等。或者使用多层服务器缓存,Lighttpd+apache等;

                      iii.              使用java代码缓存业务逻辑数据

                      iv.              使用临时db或专用读取dbnosql由于其构造的原理在读取上可以大大提高性能。

b)         网站的性能瓶颈很可能在网络传输上,因此可以优化网站互动操作,减少大数据量的提交、下载,可大量使用ajax技术,减少网络传输的数据量,由于ajax是异步操作,还可以提高用户体验。

c)         优化代码,这个就更细致了,例如不必要的循环、循环中的IO、减少对象实例数量等等。

3.       高稳定性。对于稳定性的处理,有软硬两方面。

a)         硬件需要做多机热备,某一台服务器宕了,其他服务器立即跟上,不会导致整个网站不能访问。

b)         使用磁盘阵列增加数据的稳定性。

c)         分布式存储数据,冗余的数据库设计有时候再稳定性的提高上是一个非常好的方法。

d)         软件方面需要做大量的容错处理。为保证网站的正常运营,上线前还需要大量测试。Java语言本身就是一个高重用性、高稳定性的设计语言,java的错误处理机制是非常优秀的。

画个图(有些丑陋)

关于大访问量、高性能、高稳定性网站建设的个人意见 - 火星人 - 火星人的博客

猜你喜欢

转载自javawl.iteye.com/blog/1828514
今日推荐