微信这种等级的软件是如何实现全球用户在统一的数据库里,并且用户在不同的大陆能隔着老远发消息的?

2020-09-19 17:00:46 +08:00
 abcbuzhiming
微信,非死不可,WhatsApp,基本都接近实现了全球部署。我能猜到他们肯定需要在当地部署服务器进行就近服务,但是大部分在当地部署服务的网站 api 类应用,都是没有实现统一数据库的,即所谓的“国内国外用户分开”处理方式。但是这类超级 app 不仅实现了统一数据库(所有用户可视为在一个服)。还能在不同的大陆隔着老远发消息。

统一数据库现在有不少分布式论文,虽然不完美但是如果愿意放弃一些特性的话,有可用实现。不同的大陆隔着那么远的海洋他们还能发消息,这个消息的延迟现在能压低到多少了,他们是怎么实现这个的,是不同的服务器之间拉专线光纤来实现互通吗,还是有什么特殊套路?
4928 次点击
所在节点    程序员
22 条回复
opengps
2020-09-19 17:16:13 +08:00
实际并不是一个 /台 /区服务器,而是跨地域的多 set
abcbuzhiming
2020-09-19 17:21:19 +08:00
@opengps 多 set 是指的什么意思?
imn1
2020-09-19 17:31:31 +08:00
那些服务器的技术我不懂,我只知道
先发送,后保存
先保存,后发送
两者区别很大
cloverstd
2020-09-19 17:46:50 +08:00
不同的用户可以存在不同的机房,比如大陆的用户,存在大陆机房,海外的在海外的机房
用户打上机房的标签,同机房的用户给同机房的发消息,可以不跨机房
如果发送时,发现是其他机房的用户,就路由到对应的机房去,延迟的话,跨机房走专线,基本就是物理上的延迟了

上面是我猜的
Stain5
2020-09-19 17:55:47 +08:00
参考下电信运营商怎么做的 能够解决你很多问题
laminux29
2020-09-19 17:56:52 +08:00
题主觉得跨大陆信息传输的延迟很高吗?想想 PUBG ?
TimePPT
2020-09-19 18:29:21 +08:00
异地多活同步啊,大厂都这么玩
wysnylc
2020-09-19 18:30:39 +08:00
你可以从 DNS 分地区负载开始看起
Lynalmost
2020-09-19 19:11:01 +08:00
@cloverstd 可以这样理解
whileFalse
2020-09-19 19:14:19 +08:00
我记得有个文章说过,他们分杭州服和北美服。用户注册是哪个服就不会变了。
locoz
2020-09-19 19:14:20 +08:00
微信的技术人员有写过他们的技术实现,你可以搜一下,我记得是类似于 #4 说的那种
yangbonis
2020-09-19 19:17:09 +08:00
统一不统一没有你想象的差异那么大,都是在不同层面做相同的事情罢了。
kerro1990
2020-09-19 19:25:54 +08:00
首先反代服务器 IP 估计是广播的方式,然后调度到附近的数据中心,不同数据中心用专线跨机房数据同步,消息发送看怎么路由的了,微信 ID 肯定包含了路由信息,只不过是加密的
chinvo
2020-09-19 19:35:52 +08:00
flynaj
2020-09-19 19:48:15 +08:00
微信都是你发送到服务器,然后服务器又转发出去,所以有些东西你是发不出去的。
Jerami
2020-09-19 20:24:28 +08:00
运营商-微信 pop-腾讯骨干网-数据中心
运营商 A-微信 pop-腾讯骨干网-微信 pop-运营商 B
Jerami
2020-09-19 20:24:59 +08:00
所以说美国禁止与微信的对等互联了嘛
gaius
2020-09-20 02:24:50 +08:00
统一用户服务,分布式数据裤呗🐶
opengps
2020-09-20 08:42:39 +08:00
@abcbuzhiming 刚刚留意到漏掉了你的问题,搜一下“SET 化”,也可以了解下“异地多活”类的信息
再给你举一个例子(数据为印象中的大概值):天津港当年事故期间,腾讯天津机房距离爆炸中心不足 5 公里,其负载了 2-3 亿,随时面临断电风险,因此腾讯紧急切换了负载,对外表现为用户无感知
opengps
2020-09-20 08:48:46 +08:00
@gaius IM 应用相对而言,更重要的是消息转发,而非数据库存储。

IM 应用最大的资源是骨干贷款,多个机房之间使用骨干网络线路转发。用户到就近 IDC 最然是普通家庭级网络线路,但是 IDC 与 IDC 之前最起码是企业级骨干网络线路。(这同样也解释了“游戏加速器”的原理:就近找个接入点,剩余路线走企业级骨干线路)

PS:网络结构上的近,只是约等于地理位置上的近,比如北上广之间必然有高带宽多线路,但是往西部来看,网络延迟就表现出来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/708581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX