如题,毕竟以这些 app 的表现上来看,上亿人同时在线?那么 A 用户向 B 用户发送了一条消息,是如果精准的投递到 B 用户 app 上的?
1
elfive 2019-07-13 17:20:08 +08:00 via iPhone
其他不知道,我就知道 QQ 主要以 UDP 协议为主,所以 socket 管理似乎不是很重要的事。
|
2
secondwtq 2019-07-13 17:23:19 +08:00 via iPad
QQ 早就不一定是 udp 为主了
|
3
watzds 2019-07-13 17:57:12 +08:00 via Android
每个在线用户都和微信服务器保持连接,每个连接都有用户 id 信息呗
反正怎么都有用户 id,这有什么难的? |
4
Wings0908 OP |
5
mattx 2019-07-13 18:55:54 +08:00
基于可靠 UDP 的长连接, 推送不是问题吧? 推送一般对于短连接才是问题, 具体这么高流量和实时性, 你可以找下微信架构看看, 不像 12306 这样, 存在一个无法避免的热点, 会简单很多.
|
6
misaka19000 2019-07-13 19:02:17 +08:00 via Android
|
7
misaka19000 2019-07-13 19:03:06 +08:00 via Android
ps 现在单机都能支持数百万的链接了,上亿链接维持起来并不难
|
8
laravel 2019-07-13 19:03:09 +08:00
会 go 语言的话,看看 gopush-cluster 分布式推送系统 机会了
|
9
jaskle 2019-07-13 19:34:47 +08:00 via Android
又不是一台电脑,至于协议肯定是 tcp 为主,因为移动网络 udp 支持的非常差
|
11
uyhyygyug1234 2019-07-13 21:01:07 +08:00
新浪微博大 v 怎么给数千万的粉丝 push 消息
|
12
seeker 2019-07-13 21:19:24 +08:00
给你几个关键词:C10K problem, C10M problem.
|
13
Wings0908 OP @mattx @misaka19000 感谢回复,微信架构也看了,貌似没看到介绍如何管理连接的,所以就在这边问了下。
@laravel @seeker 感谢回复,不过 C10k 这些貌似是单机问题?微信这种体量确实是分布式的。 @uyhyygyug1234 微博这种的话,不太清楚是否对实时性要求很高。 |
14
dosmlp 2019-07-14 15:13:58 +08:00
dpdk 单机千万并发,全国布个几十台机器就可以了
|