web 想做一个表单,峰值 10000 人同时提交报名,报名选项含有图片上传,图片都是手机拍照原图 10M 左右一张 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
king2014
V2EX    程序员

web 想做一个表单,峰值 10000 人同时提交报名,报名选项含有图片上传,图片都是手机拍照原图 10M 左右一张

  •  
  •   king2014 2018-03-14 13:01:47 +08:00 5735 次点击
    这是一个创建于 2820 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这样的需求我需要什么配置的云服务器才可以满足要求呢?比如带宽需要多少?cpu 和内存等.求教

    第 1 条附言    2018-03-15 14:18:59 +08:00
    1.不能用第三方问卷表单等,因为我们要限定在我们自己 app 上报名
    2.图片尽量不要压缩,因为最后需要整理导出来拿去评奖
    3.项目内容不方便透露,不是相亲活动
    4.再次感谢谢各位回答
    52 条回复    2018-03-15 19:33:12 +08:00
    wplct
        1
    wplct  
       2018-03-14 13:21:13 +08:00
    你需要分布式
    king2014
        2
    king2014  
    OP
       2018-03-14 13:23:24 +08:00
    现在用的配置是 8 核 16g 外加三条 10M 独立运行商带宽.这样的配置可以承受吗?
    king2014
        3
    king2014  
    OP
       2018-03-14 13:23:54 +08:00
    @wplct 你好,报名表单只是针对一个市区,不会设计外市报名
    brickyang
        4
    brickyang  
       2018-03-14 13:26:41 +08:00 via iPhone
    如果可以用七牛直传模式,业务服务器只需要处理页面访问,表单提交和写入数据库,一台普通服务器即可。比如 2U4G。
    loading
        5
    loading  
       2018-03-14 13:29:40 +08:00 via iPhone
    因为应对峰值,亚马逊买了一批硬件,然后闲置了,出现 aws。

    用云吧。
    king2014
        6
    king2014  
    OP
       2018-03-14 13:29:44 +08:00
    @brickyang 我看看,这么说瓶颈在带宽这里吗?
    aksoft
        7
    aksoft  
       2018-03-14 13:30:24 +08:00
    一个市区 几级?总人口有多少,还同时 10w。。
    king2014
        8
    king2014  
    OP
       2018-03-14 13:30:49 +08:00
    @loading 我打算用云,有什么推荐配置吗.本身项目周期几个月
    brickyang
        9
    brickyang  
       2018-03-14 13:32:32 +08:00 via iPhone
    @king2014 #6 对,如果你不做图片处理,并不需要很多的 CPU 资源。第一是带宽,第二是本地写。

    用七牛就是把图片上传分出去,不消耗本地资源。
    heybuddy
        10
    heybuddy  
       2018-03-14 13:32:51 +08:00
    上传图片可以考虑上云存储如 OSS,七牛云等,不要直接往自己的服务器丢
    king2014
        11
    king2014  
    OP
       2018-03-14 13:33:56 +08:00
    @aksoft 1 万没有 10 万哦
    linyinma
        12
    linyinma  
       2018-03-14 13:34:04 +08:00
    似乎需求非常不明确: 需求提到峰值 10000 并发,提到了上送图片( 10M 左右一张), 你的问题是什么配置的云服务器才能满足这样的需求: 如果仅仅是收到请求(最大 10000 ),直接 IO 到文件,只要宽带足够,根本用不到什么配置,你应该描述收到请求后,后端要做什么,数据库配置如何等等~~
    king2014
        13
    king2014  
    OP
       2018-03-14 13:34:20 +08:00
    @heybuddy 我懂了 谢谢
    qiayue
        14
    qiayue  
    PRO
       2018-03-14 13:35:03 +08:00
    直接把图片传到七牛云存储上面去
    qiayue
        15
    qiayue  
    PRO
       2018-03-14 13:35:40 +08:00
    另外,你不可能能够做到同一时刻有一万人同时上传
    一小时内有一万人上传你都成功了
    king2014
        16
    king2014  
    OP
       2018-03-14 13:37:00 +08:00
    @qiayue 嗯,好的 多谢
    king2014
        17
    king2014  
    OP
       2018-03-14 13:38:33 +08:00
    @linyinma 多谢! 收到请求后什么都不需要做,后期只要把图片导出到硬盘就行了.
    jd186
        18
    jd186  
       2018-03-14 13:39:20 +08:00
    1 核 1G 1M 都足够了吧用 OSS 直传。上传流量不计费。下载流量计费美滋滋。
    crysislinux
        19
    crysislinux  
       2018-03-14 13:39:59 +08:00 via Android
    这就是 aws lambda 的典型应用场景了。看看国内有这种没。
    lllllllllllllll
        20
    lllllllllllllll  
       2018-03-14 13:42:48 +08:00
    10M 的请求 x 10000 个 需要处理 100g 左右的数据。假设要在 60 秒内处理完毕,网络设备 /硬盘每秒需要处理 1.6g 左右的流量 /数据量。单台服务器较难以满足需要。
    likuku
        21
    likuku  
       2018-03-14 13:58:08 +08:00
    上传嘛,aws 的 s3, 国内云的 oss 都 OK,直接在边缘让云商服务群代为扛起。
    lauix
        22
    lauix  
       2018-03-14 14:20:27 +08:00
    具体配置看你代码写的如何了,处理的好低配置(不分布式)一样可以带起来。
    scriptB0y
        23
    scriptB0y  
       2018-03-14 14:23:31 +08:00
    google form ?
    aksoft
        24
    aksoft  
       2018-03-14 14:27:16 +08:00
    @king2014 看错了,sorry。
    starmoon1994
        25
    starmoon1994  
       2018-03-14 14:47:36 +08:00
    图片传七牛 你只存图片资源地址就好
    ytmsdy
        26
    ytmsdy  
       2018-03-14 14:56:06 +08:00
    图片适当压缩,压缩完以后直接上传到云服务,数据库里面只存图片地址。
    opengps
        27
    opengps  
       2018-03-14 14:59:53 +08:00
    @king2014 首先图片不要直接进服务器,1m 带宽,如果不是云服务器那中下行不限速的而是 10m 下行的,传一个 10m 文件需要 10 秒。
    Immortal
        28
    Immortal  
       2018-03-14 15:07:44 +08:00
    你好像对分布式有点误解
    realpg
        29
    realpg  
    PRO
       2018-03-14 15:11:49 +08:00
    峰值 10000 人同时,一人 10MB 文件 就是峰值同时上传 100000MB 文件 30 秒上传一个人的 266.666Gbps 带宽采购吧……
    Sapp
        30
    Sapp  
       2018-03-14 15:17:57 +08:00
    买个七牛云就行了
    geek123
        31
    geek123  
       2018-03-14 15:32:50 +08:00
    各种云都能实现基本。自己搞可能费点儿劲。
    jadec0der
        32
    jadec0der  
       2018-03-14 15:41:44 +08:00
    我给你算算,10000 人,每人 10MB,一共是 100000 MB,你的带宽是 3x10Mbps,上传这些照片需要的时间是 100000 * 8 / 30 = 26666s 也就是 7.4 个小时。这种大一练习题的数都算不对,建议改行。
    qfdk
        33
    qfdk  
    PRO
       2018-03-14 15:50:33 +08:00 via iPhone
    峰值 10000 解决很简单 限制 5 个人同时上传剩下扔去排队 做个倒计时器 还需要等待 xx 分钟上传 这样效率才高 你高并发带宽受不了的
    tjsdtc
        34
    tjsdtc  
       2018-03-14 15:57:51 +08:00
    前端方面的优化可以先用 canvas 把图片压缩一下。
    ebingtel
        35
    ebingtel  
       2018-03-14 16:02:42 +08:00
    分片上传啊
    qwwind
        36
    qwwind  
       2018-03-14 16:55:11 +08:00
    想把图片上传到类似于 aws s3,阿里云 oss 等,然后剩下的就是表单提交了,这里业务应该不会很复杂吧
    rayc9223
        37
    rayc9223  
       2018-03-14 17:10:39 +08:00 via iPhone
    找个云临时买好足够的带宽,3 条 10M 的差太远了
    blessyou
        38
    blessyou  
       2018-03-14 17:38:17 +08:00 via Android
    图片网页直传 你只要存图片地址 表单的文本信息
    oonnnoo
        39
    oonnnoo  
       2018-03-14 18:24:04 +08:00
    图片通过网页直传,丢到 oss 或其它类似存储服务,充足够多的钱,带宽、CPU 什么的根本不用管。
    qinrui
        40
    qinrui  
       2018-03-14 18:25:00 +08:00 via iPhone
    请用户分时段报名
    arrebol42
        41
    arrebol42  
       2018-03-14 19:39:53 +08:00 via iPhone
    1w 人同时提交报名,是什么这么火热?
    ycz0926
        42
    ycz0926  
       2018-03-14 19:51:39 +08:00
    先不说 10000,算 5000 好了,就图片上传一块,就 5000 * 10M / 1024 = 48G 内存(不知道算的对不)
    其他,5000 - 10000 的并发,简单的业务逻辑,这应该不会是大问题,
    这应该是是带宽、内存的问题
    ycz0926
        43
    ycz0926  
       2018-03-14 19:53:45 +08:00
    就如楼上很多同行说的,直接用 aws、七牛之类的好了
    wdd2007
        44
    wdd2007  
       2018-03-14 19:55:23 +08:00
    图片可以在前端压缩一下再上传。
    sunchen
        45
    sunchen  
       2018-03-14 20:03:09 +08:00
    aws lambda +1
    xiangyuecn
        46
    xiangyuecn  
       2018-03-14 20:06:55 +08:00
    @loading 5 楼妥妥的没毛病

    @tjsdtc 10M 一张是应该缩小一下,手机上纯 js 能搞定,现在手机拍出来的照片文件大小是有点大了,也许我们上传要求的图片没有必要要那么宽和高,缩小一下尺寸也许 500K 就能满足要求呢
    cnwtex
        47
    cnwtex  
       2018-03-14 20:17:32 +08:00
    微信这么普及, 做的那么好的图片压缩功能不用...
    zjcqoo
        48
    zjcqoo  
       2018-03-14 20:27:11 +08:00
    找些可以免费上传的接口,把图片加密后传上去。自己的服务器只接受 url 和密钥就够了
    night98
        49
    night98  
       2018-03-15 01:50:36 +08:00 via Android
    页面上传时图片压缩,大概压缩到 300kb 左右就差不多了,表单提交应该不是重点,用对象存储吧,目前这个机器足够用了。
    49gd
        50
    49gd  
       2018-03-15 10:10:31 +08:00
    这是啥报名 万人相亲大会?
    fiht
        51
    fiht  
       2018-03-15 12:36:02 +08:00
    忽然想,这个表单用腾讯云的或者是问卷星这类的是不是可行...
    zoffy
        52
    zoffy  
       2018-03-15 19:33:12 +08:00
    项目是抢答类 app 吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5543 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 06:10 PVG 14:10 LAX 22:10 JFK 01:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86