微信的后台服务器和数据库是怎样的一种存在?

2019-02-16 16:12:38 +08:00
 mamahaha

百度搜了搜,像微信后台的开发,微信数据库这类的问题都没有确切的答案,真的很好奇,不知道他是靠什么技术支撑 10 多亿活跃用户的并发。

5051 次点击
所在节点    问与答
11 条回复
singerll
2019-02-16 16:25:54 +08:00
公司部署过本地企业微信,tomcat+mysql
kmahyyg
2019-02-16 16:57:44 +08:00
Google Bigtable: 你说啥?
lhx2008
2019-02-16 17:34:24 +08:00
最简单的就是做分片集群来储存账号信息,然后一个心跳服务维持登录信息,然后一个消息队列来推拉消息,还有一个存档服务储存聊天记录。朋友圈另算。
namesc
2019-02-16 17:53:40 +08:00
维持十万个用户的高可用都不容易,更别说十亿级别的了,能啃下这个需求这个年薪百万不是梦。

想起之前公孙玉龙的子弹短信,一天时间被机器人发了五六十万条广告信息就发公开信说遭遇了一场有组织的大规模垃圾信息攻击,就这水平也好意思说挑战微信,按 2017 年的微信数据,五六十万条信息对微信来说只不过是一秒钟的事情。
mamahaha
2019-02-16 19:12:53 +08:00
@namesc 真的是很很厉害,看了一个之前介绍微信开发者张小龙的文章。。。。马化腾更是将张小龙的薪资涨到每年三亿港币,光从公司统一的工资表上看,张小龙的工资甚至远远超越了马化腾,马化腾工资表上的工资是年薪三千多万港币。。。。
hilbertz
2019-02-16 19:27:45 +08:00
即时通讯类应用对服务器压力并不大,单台常规服务器用 java 就可以处理千万级实时连接
hst001
2019-02-16 19:32:59 +08:00
微服务架构。
很早之前用 MySQL 存消息,现在不知道了。
mamahaha
2019-02-16 19:47:49 +08:00
我觉得可能应该已经不是数据库的概念了,服务器只管牵线搭桥,数据都在终端上。
gamexg
2019-02-16 20:39:46 +08:00
聊天类应该属于比较容易能够横向扩展的,感觉最简单的办法是:

* 按用户 id 分配聊天服务器
* 个别服务器故障造成消息发送失败时,由客户端负责重发

然后其他离线消息、朋友圈等另行处理。
azh7138m
2019-02-16 21:05:31 +08:00
@mamahaha 服务器不存数据的话,郭嘉第一个不同意
Yoock
2019-02-16 22:52:29 +08:00
手动谷歌一下,就不会有那么多疑问了
https://www.infoq.cn/article/the-road-of-the-growth-weixin-background

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

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

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

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

© 2021 V2EX