服务器 频道

12306大家谈 高并发网站架设的几点建议

  高并发网站架设应该注意些什么

  一个大型的高并发高性能网站架构需要从哪些层面去考虑?要实现高并发,可以从哪些技术手段入手?您个人有哪些比较好的建议?

  如今,百万千万PV已经算不上高并发网站,这其中设备、技术、各应用之间的逻辑关系都得仔细考虑,而技术又包括操作系统Windows,Java,缓存,应用程序,数据库,分布式技术,负载均衡技术等等。

  其实一个高频高并发网站的架构可以想象成一个漏斗,口大,越往下漏越小,前端Webserver不停的、大量的接收请求,然后通过合理运用负载均衡、CDN缓存、数据库缓存一层层过滤,最终到达数据库的量也在控制范围内了。

  下面是技术上一下几点建议:1.前端的负载均衡技术,2.CDN的缓存技术应用,第一个人访问过,第二个人就可以直接访问了,而且就近访问,这样不仅访问速度快,而且成本也会降低,3.采用分布式系统,再强大的设备都是有系统极限的,而分布式系统是可以扩展的,比如像游戏后台服务器,一台服务器可以支撑2000用户,那么加一个处理器也许只能加100-200,然而加一台服务器就可以增加2000用户,另外,数据库服务器也使用多台,互联网都是读的多,读的时候从多个数据库服务器读,这样速度就快了,写的时候只有一个数据库写,这样就保证数据一致性,另外数据库也可以采用缓存技术,除此数据库本身分区技术等等这些都可以提高可用性。

  如果流量再大,可以考虑拆分,比如一个门户网站有很多频道,在量一定的时候可以放在一起,当其中某一个频道流量特别大的时候,就可以把其中一个拆出来,给这个频道单独做一个环境,前端根本看不出变化,但后端其实已经不再那个服务器里了。

  部署大型的高并发高性能网站架构需要注意哪些问题?存在哪些挑战?

  像12306,春节时间买票特别多,人力各方面都要准备特别多的资源,然而这些资源平时怎么办呢,怎么平衡,这个就需要好好思考了,目前还不好办,像淘宝可以不停的搞活动,12306不可以,平时坐火车的就那么多人,所以这个问题上就要考虑投入产出比,目前还没有太好的办法解决。

  很多网友提到了用开源的技术来构架大型高并发网站架构,开源技术在这个领域是否存在一些优势?

  完全可以考虑使用开源技术,大部分互联网公司都是开源,其实开源不仅仅是技术本身,更重要的是一种思想,大家愿意去交流,优势,省钱是一方面,另外出了问题,甚至可以给作者写信有人去帮你解决。而用商业软件的公司都比较封闭,出了问题也不愿意沟通,以致大家都在猜测,

  有人建议使用云计算平台(类似于Amazon之类的)来搭建这类网站,以便提高资源利用率节省成本,您是如何看待的?

  采用云服务商提供的服务,量大了其实并不划算,因为带宽,cpu等等都要计费,利用率提高了,成本不一定节省,而且不可控,对于创业型的小公司倒是可以考虑采用云计算平台,不过对于12306自己建一个云环境倒是有可能的。

  有网友建议采用Hadoop、NoSQL等技术去解决此类问题,但也有反对者称NoSQL技术不是很成熟,并且在实现数据一致性方面存在问题,您如何看待?

  其实都可以用,但是要根据不同的应用环境合理的应用,Hadoop主要用作数据分析,搜索引擎,在分析用户行为上可以考虑。NoSQL是简化的SQL,用来做缓存技术的,但要和SQL一起使用,目前发展也很成熟了,并不存在数据库一致性方面的问题。

  您认为虚拟化(不局限于服务器虚拟化,也可以包括网络虚拟化等)在这类型大型高并发网站建设过程中可以起到什么作用?

  肯定是起作用的,但并不是说所有的应用都适合虚拟化,例如IO密集型,计算密集型的就不能虚拟化,但像前端WebServer就可以采用虚拟化,因为它本身就是用来接收请求的,虚拟化后可以大量增加接收请求的数量,而数据库服务器就不能虚拟化,因为本身运算量大,而且对磁盘读写需求量大,虚拟化后可用性会大大降低。

0
相关文章