V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zeroJason
V2EX  ›  程序员

并发解决一秒钟五十万的并发网站

  •  
  •   zeroJason · 2016-08-09 12:15:52 +08:00 · 25439 次点击
    这是一个创建于 3032 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一秒钟五十万的并发网站,如何从服务器,缓存,数据库,前端进行优化?
    纯粹的问题,求指教
    104 条回复    2016-08-10 23:24:12 +08:00
    1  2  
    leehon
        101
    leehon  
       2016-08-10 04:07:50 +08:00
    看起来是不懂技术的在哗众取宠啊
    binux
        102
    binux  
       2016-08-10 04:29:15 +08:00
    「公司有 50W 个客户 (可以理解成一台电脑)每个电脑需要在 5 秒内 访问一次公司网站」即使它们在同一秒访问网站,也不意味着这 50w 个连接并发会落到动态服务器上。它们可以在某个环节排队嘛,只要你的服务器能在 5 秒内处理完 50W 个请求而不是 1 秒 50W 。
    izoabr
        103
    izoabr  
       2016-08-10 07:55:37 +08:00   ❤️ 1
    感觉是被架构给害了。

    对了,还有一句,公司封官还是要讲规矩,按规矩来,不是什么人都能副总的,你得有能耐才能上级别,不然全是副总也不是事,还怎么招人发展啊以后。

    说回来这个技术问题的话,在 1 万客户的时候就应该发现问题,然后去找问题的根源,做架构优化,实在无法优化的就做分流。

    我猜这里面客户就算是有那么多请求每秒同时来,而且要求实时性较高,那趋同率也会很高,所以首先是不是考虑上 Cache 去解决一部分。从上到下的话,先 CDN 分发,解决一些静态请求重复的问题,过滤出要动态请求的再回源,到了源服务器如果请求还是很大,就分多个前端去处理,前端处可以考虑持久连接,后面数据部分能 cache 的就 cache 掉,省掉数据库的查询负担。如果还是很大,就做读写分离,分离出来之后看写的请求还多不多,如果还是很多那就别直接操作数据库,加中间层,让中间层去操作数据库。
    如果中间层操作数据库还是压力很大,那就考虑数据优化了,比如非关系型。
    如果以上都解决不了,估计就是 12306 那样的东西了,得实时扣票,还要解决冲突问题,那也好办,现在的 12306 已经给出了解决办法,虽然不是很完美。

    不过真能到最后一步的,估计就不是这种 level 的人能接触到的问题了。
    nnfish
        104
    nnfish  
       2016-08-10 23:24:12 +08:00 via iPhone
    赞同楼上朋友的解决思路
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:29 · PVG 02:29 · LAX 10:29 · JFK 13:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.