免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖

千万级pv高性能高并发网站架构与设计交流探讨帖 活动结束 获奖名单公布 [复制链接]

论坛徽章:
0
发表于 2011-12-06 18:06 |显示全部楼层
本帖最后由 老男孩linux培训 于 2011-12-06 18:17 编辑
前端缓存----LVS---nginx中层代理---应用服务器---数据库缓存---数据库
arezone 发表于 2011-12-06 15:38



    这个架构能设计的完善其实就非常难得了。但对于大型站点来,实际架构比这还要复杂的多。或者说,太多的细节要展开。
话说回来即使是这位朋友的架构,也有太多的细节技术变化,需要研究学习。
  
如:1)前端缓存这里,可以选CDN,可以自己架(又涉及到DNS,甚至智能DNS,数据存储等),那么有朋友还会问,是自架还是购买?还是兼有?
    一般中小公司购买CDN比较好(可以同时用2家),大型公司一般考虑风险和性价比可能会自建部分,购买部分。那么无论是自建和购买,
    都有需要特定的业务,比如,图片,视频,文件等业务,而且,最好需要把这些内容能独立1个或多个域,然后才好购买CDN,有些特殊业务需要
    及时更新CACHE的就要复杂一些了。自建CDN的技术还是比较复杂的。除了DNS,CACHE外,还要考虑很多因素。

    2)L7代理层,在实际架构中,访问量比较大的站,我们应该努力不用此层,因为L7的效率和L4比要差几个数量级,可以根据业务对具体的业务进行服务物理拆分,如果
        有可能在域名上做独立拆分,一般需要在同一个域名下显示所有内容的情况才需要L7层。大部分的情况都可以化解为L4层。相反,对于仅有几百万PV以下的站
        老男孩这里还是推荐使用haproxy/nginx 替代lvs等,haproxy/nginx 的部署极其方便简单,LVS相对来说部署就复杂了。
   
     3)应用层可做的文章就更多了。数据静态画,读库的数据,通过CACHE,NOSQL等更有效率的服务取,或异步显示(队列的方式,生成消息,消费者消费)
        另外,应用层向下访问可以在程序级别实现分布式的访问,分布式的读写分离,这样可以缓解下面负载均衡的压力,甚至可以考虑在db cache层不用负载均衡。
     4)DB及存储几乎是所有网站的稀缺资源,或者说瓶径,一定要想方设法不让用户访问到。如果能做到只做数据存储和备份 那就牛了。某些中小网站甚至前端或者后端还没有
        cache,就盲目的分布式存储或DB CLUSTER,不能说徒劳,但是收效甚微。

  在计算机领域 cache无处不在,从基础的硬件(CPU,内存,硬盘)到各行业的各种架构都离不开CACHE。
  越聊越多,话题越大。。。先打住吧!

论坛徽章:
0
发表于 2011-12-06 19:38 |显示全部楼层
回复 50# yuhongchun


    赞

论坛徽章:
0
发表于 2011-12-06 20:37 |显示全部楼层
是现场,还是网贴讨论

论坛徽章:
0
发表于 2011-12-06 21:44 |显示全部楼层
中国能有几个淘宝和TX呢?能有几个公司做到自己写存储,写数据库?自己开发Nginx? 所以说,大众化的架 ...
yuhongchun 发表于 2011-12-06 17:47



   高并发的独立实现或者说是开发类型nginx 高并发的服务器,这个并不是大众所能操作的,开发架构、开发高性能数据库都是需要独到的算法和强悍的编程开发能力的。如果日常关注这个行业的可以看到 TB 扣扣都是在大量的招开发人才的来重写自己的架构组建代码或者是二次开发国外的开源项目。

在这里讨论的是如何更好的利用开源提高的 lvs  nginx  apache haproxy mysql nagios cacti squid等开源项目的成果来组建具有实践意义的高并发网站。

实现高并发网站组装开源项目是一项挑战心智的艰辛历程或痛苦的折磨。

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
发表于 2011-12-06 23:37 |显示全部楼层
围观学习了

论坛徽章:
0
发表于 2011-12-07 10:34 |显示全部楼层
回复 52# 老男孩linux培训


  不用lvs的话,如果前端ngnix或者 haproxy宕掉了,如何处理?
  如果后端有类似于cache的功能的话,显然用七层代理能够大幅提升cache的命中率;
  当然这些都是要根据网站自身的特点来确定的。 从硬件架构来说 ,可能 七层和四层设别共用 一台服务器会性价比 比较高。

论坛徽章:
0
发表于 2011-12-07 11:04 |显示全部楼层
本帖最后由 coralzd 于 2011-12-08 17:19 编辑

1、千万级pv 环境下的网站,应将图片 js css等等静态资源,独立成集群,不要和应用服务器掺和。
2、图片 js css 服务器,一般最少准备2台服务器组成集群,这里涉及到了共享存储。以我们的环境为例,NFS方式的连接硬件存储,硬件瓶颈越来越严重,造成网站因为存储的原因,打开很慢。我在这里推荐用分布式文件系统(hadoop、moosefs、mogilefs等),我们这里应用的是moosefs,经过大约一年的时间验证,证明该方案成熟。
3、千万级pv以上的网站,要审时度势的使用NFS。

论坛徽章:
0
发表于 2011-12-07 11:12 |显示全部楼层
回复 58# coralzd


    这里就涉及到具体的实现的各种资源的整合和选择上的多方面因素,区分静态和动态资源任何一个站点都是要考虑和深思的。文件存储对于大规模的集群非常重要。

论坛徽章:
0
发表于 2011-12-07 12:20 |显示全部楼层
我想学一下负载均衡方面的知识

论坛徽章:
0
发表于 2011-12-07 12:32 |显示全部楼层
很不错 学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

ITPUB技术栈

ITPUB技术栈是ITPUB企业打造的垂直于IT领域的知识社群平台,在这里,你既可以是创作者也可以是消费者。如果你的IT生涯丰富多彩,喷薄的个人价值尽可在小栈内体现;如果你渴望找到志同道合的伙伴,拓宽人脉,小栈比跑会场更快。 小栈特色:
1.极高的用户转化率,实现更直接的知识变现;
2.随时随地,刷个朋友圈的时间,实现更长效的信息沉淀;
3.戳痛、难点的专业咨询,更接近成功解决方案的时刻;
4.贴近意见领袖,个人高速成长,迈入更富有价值的人际圈。

----------------------------------------

技术小栈>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP