• 请不要在回答技术问题时复制粘贴 AI 生成的内容
king2014
V2EX  ›  程序员

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

  •  
  •   king2014 · Mar 14, 2018 · 6639 views
    This topic created in 3158 days ago, the information mentioned may be changed or developed.

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

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

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

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

    @tjsdtc 10M 一张是应该缩小一下,手机上纯 js 能搞定,现在手机拍出来的照片文件大小是有点大了,也许我们上传要求的图片没有必要要那么宽和高,缩小一下尺寸也许 500K 就能满足要求呢
    cnwtex
    cnwtex
    Mar 14, 2018
    47
    微信这么普及, 做的那么好的图片压缩功能不用...
    zjcqoo
    zjcqoo
    Mar 14, 2018
    48
    找些可以免费上传的接口,把图片加密后传上去。自己的服务器只接受 url 和密钥就够了 😀
    night98
    night98
    Mar 15, 2018 via Android
    49
    页面上传时图片压缩,大概压缩到 300kb 左右就差不多了,表单提交应该不是重点,用对象存储吧,目前这个机器足够用了。
    49gd
    49gd
    Mar 15, 2018
    50
    这是啥报名 万人相亲大会?
    fiht
    fiht
    Mar 15, 2018
    51
    忽然想,这个表单用腾讯云的或者是问卷星这类的是不是可行...
    zoffy
    zoffy
    Mar 15, 2018
    52
    项目是抢答类 app 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1726 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 165ms · UTC 17:22 · PVG 01:22 · LAX 09:22 · JFK 12:22
    ♥ Do have faith in what you're doing.