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

比较好奇微信, qq, facebook 是如何管理 socket

  •  
  •   Wings0908 · Jul 13, 2019 · 5353 views
    This topic created in 2670 days ago, the information mentioned may be changed or developed.

    如题,毕竟以这些 app 的表现上来看,上亿人同时在线?那么 A 用户向 B 用户发送了一条消息,是如果精准的投递到 B 用户 app 上的?

    15 replies  •  2019-07-14 18:41:51 +08:00
    elfive
    elfive
    Jul 13, 2019 via iPhone
    1
    其他不知道,我就知道 QQ 主要以 UDP 协议为主,所以 socket 管理似乎不是很重要的事。
    secondwtq
    secondwtq
    Jul 13, 2019 via iPad
    2
    QQ 早就不一定是 udp 为主了
    watzds
    watzds
    Jul 13, 2019 via Android
    3
    每个在线用户都和微信服务器保持连接,每个连接都有用户 id 信息呗

    反正怎么都有用户 id,这有什么难的?
    Wings0908
    Wings0908
    OP
    Jul 13, 2019
    4
    @elfive @secondwtq 感谢回复,以 UDP 为主的话,推送是个问题?
    @watzds 感谢回复,如果是这样,需要某个地方存储这个信息,缓存?上亿的数据,并且高实时性,还是不太清楚具体怎么做
    mattx
    mattx
    Jul 13, 2019
    5
    基于可靠 UDP 的长连接, 推送不是问题吧? 推送一般对于短连接才是问题, 具体这么高流量和实时性, 你可以找下微信架构看看, 不像 12306 这样, 存在一个无法避免的热点, 会简单很多.
    misaka19000
    misaka19000
    Jul 13, 2019 via Android
    7
    ps 现在单机都能支持数百万的链接了,上亿链接维持起来并不难
    laravel
    laravel
    Jul 13, 2019
    8
    会 go 语言的话,看看 gopush-cluster 分布式推送系统 机会了
    jaskle
    jaskle
    Jul 13, 2019 via Android
    9
    又不是一台电脑,至于协议肯定是 tcp 为主,因为移动网络 udp 支持的非常差
    watzds
    watzds
    Jul 13, 2019 via Android
    10
    @Wings0908 上亿没啥,分布式机器多就行。分区分而治之
    uyhyygyug1234
    uyhyygyug1234
    Jul 13, 2019
    11
    新浪微博大 v 怎么给数千万的粉丝 push 消息
    seeker
    seeker
    Jul 13, 2019
    12
    给你几个关键词:C10K problem, C10M problem.
    Wings0908
    Wings0908
    OP
    Jul 13, 2019
    13
    @mattx @misaka19000 感谢回复,微信架构也看了,貌似没看到介绍如何管理连接的,所以就在这边问了下。
    @laravel @seeker 感谢回复,不过 C10k 这些貌似是单机问题?微信这种体量确实是分布式的。
    @uyhyygyug1234 微博这种的话,不太清楚是否对实时性要求很高。
    dosmlp
    dosmlp
    Jul 14, 2019
    14
    dpdk 单机千万并发,全国布个几十台机器就可以了
    tempdban
    tempdban
    Jul 14, 2019 via Android
    15
    @dosmlp 协议栈?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5177 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 01:31 · PVG 09:31 · LAX 17:31 · JFK 20:31
    ♥ Do have faith in what you're doing.