withablink
V2EX  ›  问与答

类似"万人聊天群"的需求,目前的技术栈最佳实践会是怎样呢?

  •  
  •   withablink · Nov 10, 2018 · 5787 views
    This topic created in 2927 days ago, the information mentioned may be changed or developed.
    考虑这样的需求:

    1. 千人聊天群。可以查看完整的信息历史。所有客户端保持同步。同步速度尽量快,对服务器压力尽量小。

    2. 万人聊天群。可以查看完整的信息历史。所有客户端保持同步。同步速度尽量快,对服务器压力尽量小。

    3. 十万人聊天群。可以查看完整的信息历史。所有客户端保持同步。同步速度尽量快,对服务器压力尽量小。

    4. 一百万人聊天群。可以查看完整的信息历史。所有客户端保持同步。同步速度尽量快,对服务器压力尽量小。

    5. 以此类推... 目前的技术栈最佳实践会是怎样呢?
    36 replies  •  2018-11-13 10:31:34 +08:00
    trys1
    trys1
    Nov 10, 2018 via Android
    1
    telegram 了解一下
    withablink
    withablink
    OP
    Nov 10, 2018
    2
    @trys1 小规模时就是类似 telegram,但是电报群也没见过十万人及以上的...

    (实际需求中,参与的不一定是人,所以不用担心消息太多看不过来)
    jwk345
    jwk345
    Nov 10, 2018 via iPhone
    3
    看不出来哪里需要用到这么大的群,这么大的群还叫群吗,有何意义
    vindurriel
    vindurriel
    Nov 10, 2018 via iPhone
    4
    想多了 一个群不会有那么多人同时在线的 telegram 为例 我参加的最大的群 7555 人 5 人在线
    withablink
    withablink
    OP
    Nov 10, 2018
    5
    @jamesxu 群只是一个比喻。实际需求中,参与的不一定是人。

    想了想,如果参与人数特别多,还真的似乎只有靠区块链。
    xiaolanglang
    xiaolanglang
    Nov 10, 2018
    6
    你这是聊天群啊?我觉得你按照消息中间件去设计吧……
    可以参考一下 kafka 之类的实现
    withablink
    withablink
    OP
    Nov 10, 2018
    7
    @vindurriel 群只是一个比喻。实际需求中,参与的不一定是人。
    vindurriel
    vindurriel
    Nov 10, 2018 via iPhone
    8
    @withablink 不推历史到客户端 谁看谁去服务器拉取 加缓存
    withablink
    withablink
    OP
    Nov 10, 2018
    9
    @gy911201 消息队列是肯定需要的,不过稍微复杂的是需要保持全部人和全部历史的同步,而且需要支持很多 client,所以可能还是 P2P 的做法更好,那么好像就只有靠区块链了。
    vindurriel
    vindurriel
    Nov 10, 2018 via iPhone
    10
    @vindurriel kafka 就是这么个思路 消息持久化 消费者随用随取
    kernel
    kernel
    Nov 10, 2018 via Android
    11
    @withablink 你是不是对区块链有什么误解
    withablink
    withablink
    OP
    Nov 10, 2018
    12
    @vindurriel 好的我研究下,目前还有与 Kafka 类似的方案吗
    wsh1108
    wsh1108
    Nov 10, 2018 via Android
    13
    只有我觉得超过 10 万人的聊天群这个需求不存在吗🤐
    innoink
    innoink
    Nov 10, 2018 via Android
    14
    一开始说“ x 人聊天群”
    然后又说不一定是人
    那是不是还可以说不一定是聊天
    那鬼知道你问的什么
    withablink
    withablink
    OP
    Nov 10, 2018
    15
    @innoink @wsh1108 标题中说了“类似”。

    举聊天群的例子,因为聊天群的信息流速度很大(尤其是发图片和视频时)。

    而且不同人数的做法完全不同。百人千人可以随便做。一万人十万人百万人的信息量和同步需求,就不是随随便便可以做得出来了。
    Tumblr
    Tumblr
    Nov 10, 2018
    16
    @withablink #2 “及以上”没见过,因为上限就是 10 万人,前段时间某些东西比较火的时候,前面的几个群都是 10 万人群(是不是这几个名字并不确定,至少前面的当初都是 10 万人群)
    jetbillwin
    jetbillwin
    Nov 10, 2018
    17
    说靠区块链的是不是对区块链有什么误解……
    uqin
    uqin
    Nov 10, 2018
    18
    哈哈 区块链恰恰是最低效的数据库(就目前水平) tg 本身跟区块链一毛钱关系没有 只是出于某种因素很多区块链项目交流喜欢用他交流而已
    gamexg
    gamexg
    Nov 10, 2018 via Android
    19
    @withablink 区块链?你是认真的?
    MonoLogueChi
    MonoLogueChi
    Nov 10, 2018 via Android
    20
    各大直播网站的弹幕不就是最好的示例吗,一个能容纳 60 亿人的“聊天群”
    chinvo
    chinvo
    Nov 10, 2018 via iPhone
    21
    @withablink #9 区块链?别逗了。低效就是最大的缺点
    kslr
    kslr
    Nov 10, 2018
    22
    直接通知消息,本地做历史不就行了
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    Nov 10, 2018 via iPhone
    23
    @MonoLogueChi 弹幕池会自动清的
    jadec0der
    jadec0der
    Nov 10, 2018 via Android
    24
    你说的区块链 100 万人聊天群,是每秒钟只能发三条消息的那种吗?
    argsno
    argsno
    Nov 10, 2018 via iPhone
    25
    区块链???
    ericls
    ericls
    Nov 10, 2018 via iPhone
    26
    Erlang otp
    iceheart
    iceheart
    Nov 10, 2018 via Android
    27
    为啥群不能太大?
    不说图片,一个人在群里发个 10k 的短文,1 万人在线,那流量就要 X10000,发个几十 K 的图片,server 的几百兆流量就出去了。
    azh7138m
    azh7138m
    Nov 10, 2018 via Android
    28
    tg 有 10w 人的群,年初的时候各种币圈韭菜群不都是这个规模的吗?
    murmur
    murmur
    Nov 10, 2018
    29
    ig 打 fnc 的直播算不算万人聊天群 不仅聊天还 刷礼物看视频呢
    fox0001
    fox0001
    Nov 10, 2018 via Android
    30
    ingress 内置的聊天功能,算不算?貌似可以全球玩家同时聊
    lsgjwkr
    lsgjwkr
    Nov 10, 2018 via Android
    31
    Telegram 万人群就很好,虽然我不知道有什么用。
    xuanbg
    xuanbg
    Nov 10, 2018
    32
    万人群聊起来那叫一个没法看,速度 x10 的弹幕感受一下
    dxgfalcongbit
    dxgfalcongbit
    Nov 10, 2018
    33
    @MonoLogueChi 弹幕可以算的话贴吧也行吧
    chuhemiao
    chuhemiao
    Nov 11, 2018
    34
    貌似并解决不了什么刚需,不知道 discord 最高能多少人,见过群组过万很正常,频道能一直添加
    irgil
    irgil
    Nov 11, 2018
    35
    这跟区块链有什么关系。。。
    innoink
    innoink
    Nov 13, 2018
    36
    @withablink 我们哪里知道你说的类似是怎么类似
    有人觉得鱼和青蛙类似,因为都能在水里游泳
    有人觉得兔子和青蛙类似,因为都有腿还能跳

    人多不一定数据量就大,谁知道你的聊天者发送信息的频率多少,是否纯文本,是否分角色,满足什么样的统计规律,网络状况如何(是否存在大量不稳定的移动网络)
    只说一个类似,估计你自己都不知道你想问的究竟是什么
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1832 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    ♥ Do have faith in what you're doing.