dillon
V2EX  ›  问与答

这样的程序是 不可能实现 的?

  •  
  •   dillon · Feb 26, 2016 · 5077 views
    This topic created in 3903 days ago, the information mentioned may be changed or developed.
    设计的程序逻辑是多人抢购一个产品,当产品成交以后在所有客户端上显示该产品已成交(不刷新),技术说这个不可能实现,一分钟请求一次状态也不行(请求数量太多)
    31 replies  •  2016-02-27 16:25:57 +08:00
    oott123
    oott123
    Feb 26, 2016
    1
    当技术说“不可能实现”时,要么是他拿得钱太少,要么是贵司在该项目上的资源(服务器带宽啥的)投入太少。
    kingname
    kingname
    Feb 26, 2016
    2
    我已经看到很多 app 上有类似的功能了。
    Strikeactor
    Strikeactor
    Feb 26, 2016
    3
    websocket 呢
    gamexg
    gamexg
    Feb 26, 2016
    4
    如果你愿意增加一台实时推送服务器或是愿意增加预算使用第三方推送是可以实现的。
    socket.io
    jarlyyn
    jarlyyn
    Feb 26, 2016
    5
    说实话,我觉得可能听听技术的估计没错。

    技术都告诉你是服务器负载的问题了。

    又总不会使用 p2p 吧?

    我觉得如果用户数量不大的话,你不需要到这里问直接就可以回答他了。
    cdffh
    cdffh
    Feb 26, 2016❤️1
    6
    @kingname
    讲道理如果用户量很大的话这个功能并不容易 . 在没有基础的情况下 并不是那种一两天就能搞好的小功能.

    1,先忽略并发和客户端数量带来的性能问题. 我估计 你们的客户端和服务端之间的交互用的是 http 没有用长连接之类的 所以服务器的交易状态没办法实时下发到客户端. 如果要完成你说的的这个功能的话要么现在做一个推送要么客户端定时请求.

    2 现在考虑并发和用户量 在用户量大的情况下 客户端的定时请求几乎等于 ddos 了. 服务器扛不住. 如果是做推送下发的话 在你们没有基础的情况下,这个开发量肯定不是一时半会儿能完成的了.

    看起来你也不是很懂技术的样子
    综上 技术也懒得和你解释,所以他直接直接告诉你搞不定了.
    herozzm
    herozzm
    Feb 26, 2016 via Android
    7
    Ajax 不行吗?当产品卖光后后台写入内存, Ajax 去读内存而不是数据库
    300
    300
    Feb 26, 2016
    8
    我觉得,成交后服务器停止响应,客户端收不到信息即判断为已成交
    kingname
    kingname
    Feb 26, 2016
    9
    @cdffh 你把这个发给我干嘛???
    billlee
    billlee
    Feb 26, 2016
    10
    @jarlyyn 我觉得倒是技术的问题,他说的是“一分钟请求一次”,明显就是 pull. 用 websocket push 应该可以的
    colincat
    colincat
    Feb 26, 2016 via iPhone
    11
    前提是什么客户端
    dillon
    dillon
    OP
    Feb 26, 2016
    12
    @colincat 移动客户端
    jarlyyn
    jarlyyn
    Feb 26, 2016
    13
    @billlee

    关键还是人数啊。
    codevn
    codevn
    Feb 26, 2016
    14
    就算能实现也不要想了,技术都开口说搞不定了,你偏偏告诉人家能搞定也没用,代码又不是你写;
    limengwei
    limengwei
    Feb 26, 2016 via Android
    15
    广播
    movtoy
    movtoy
    Feb 27, 2016❤️1
    16
    @codevn 能实现就找能实现的人,怎么能叫不要想了。
    yangqi
    yangqi
    Feb 27, 2016
    17
    技术估计是根据你们现在的情况说的不可能实现吧。技术上是能实现,但是也要根据具体情况。

    或者你们技术深知代码的好坏程度,才放出这个话
    Zohar
    Zohar
    Feb 27, 2016
    18
    WebSockets
    JohnH
    JohnH
    Feb 27, 2016❤️1
    19
    参照 京东拍卖,观察其产品列表页面和产品页,分析一下,感觉上是没什么问题的
    yuriko
    yuriko
    Feb 27, 2016❤️1
    20
    功能看起来很小,但其实是个深坑,石油钻井级别的
    一般就是手头的各种资源不够,所以开发会觉得做不到……
    imn1
    imn1
    Feb 27, 2016
    21
    12306 还是里约热內卢奥运开幕式门票?
    jsonline
    jsonline
    Feb 27, 2016 via Android
    22
    自己 DDos 自己,你不懂秒杀时刷新的兴奋感吗!居然去掉这个 feature !
    jsonline
    jsonline
    Feb 27, 2016 via Android
    23
    一分钟请求一次有啥意义,最后一刻必须一秒钟刷新三次!
    veau
    veau
    Feb 27, 2016
    24
    从产品逻辑讲,先在客户端挡掉 90%的请求,直接返回 false 。
    然后剩余 10%的用户,本地过了再去和服务器链接。

    90%和 10%自己控制好比例。
    sensui7
    sensui7
    Feb 27, 2016
    25
    @veau 所以我从来不在网上抢东西,
    tabris17
    tabris17
    Feb 27, 2016
    26
    能够通过长连接实现,但是你们准备投入多少开发和服务器?
    ChefIsAwesome
    ChefIsAwesome
    Feb 27, 2016 via Android
    27
    买过火车票吗。一分钟一次你们技术都说数量太大扛不住了
    emric
    emric
    Feb 27, 2016❤️1
    28
    最广泛的是长连接。
    我这里并发连接最高只有 20w ,目前丢在 4G 的阿里云上面。
    从负荷上看我觉得还有很大的提升的空间。
    hardware
    hardware
    Feb 27, 2016❤️1
    29
    crossbar.io 处理这个应该挺简单的
    veau
    veau
    Feb 27, 2016
    30
    @sensui7 同。
    charlie21
    charlie21
    Feb 27, 2016❤️1
    31
    ref 用 node.js 实现 HTML5 原生的 comet(长连接)
    http://think2011.net/2014/11/12/html5-comet-EventSource--node.js-example/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5204 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    ♥ Do have faith in what you're doing.