问吧, 问吧,迟早会出事的,像腾讯这么多用户....

tkscascor 2010-03-08 02:42:08
腾讯前些日子 说超过1e人在线, 突然有个想法.
我想问一下, 对于腾讯这种多用户同时登陆的是怎么处理的.
使用多个服务器来负载, 如果是多个服务器负载,服务器之前的数据应该如何同步...
比如做镜像什么的, 我是广东的,登陆的时候自动识别,登陆广东这边的服务器,
后来换个地方就登陆到别的服务器了,,, 这个数据该如何及时同步.. ,,
难道是简单的一些数据库同步呀, 或者事务同步的?
那个,我的问题,问清楚了吗?? ,,,, 我的问题, 会不会有点弱,,, 请勿拍砖,, 我闪,,,,
...全文
373 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
tkscascor 2010-03-12
  • 打赏
  • 举报
回复
想来还是结贴好了,,
灵雨飘零 2010-03-11
  • 打赏
  • 举报
回复
没涉及过,学习,帮顶!!
tkscascor 2010-03-11
  • 打赏
  • 举报
回复
捞捞~~~~~~~~~~~~~~
  • 打赏
  • 举报
回复
你给别人QQ聊天,如果对方网络突然断线了,你发的信息会等待10分钟之后再发给对方吗?

所谓数据库,保存的不过是一些相对静态的资料,例如个人注册资料和几个状态字段。

让我们假设按照最多每500万人一台服务器(完全可以用QQ号码来分段),那么1e人满打满算最多也就占用20台服务器。

而系统数据服务完全可以是分布的。例如A要跟B通话,A只需要在第一次连接B时访问一下B所在服务器取出对方客户端登录的本地信息,然后就直接跟对方的QQ客户端对话了。如果对方不在外网,那么尝试打洞。如果对方无法打洞,那么或许B所在的服务器可以帮它把信息缓存5秒钟,但是即使这最次的选择也根本不用通过数据库来传递给B的客户端啊。
  • 打赏
  • 举报
回复
在业务上根本不能把它跟google比较。因为google的核心是对互联网信息索引,而QQ的核心是即时聊天。
  • 打赏
  • 举报
回复
让那些只写过远程访问c/s数据库的人去设计大型通信软件肯定完蛋,因为他们似乎只能把最应该放在最后才考虑的数据库当作思维出发点。

比如我跟csdn上一个人私下通讯,我只是在csdn的网页上查询到对方的电话号码,然后就去通讯了。还用的着通讯业用csdn网页?

这就是即时通讯,大多数东西都不保存在数据库中的。就算保存,也只是后备(异步保存),通信的许多Command行为都是并不依赖数据库的,只有个别行为才需要访问一下系统数据服务。
tkscascor 2010-03-10
  • 打赏
  • 举报
回复
捞捞~~~~~~~~~~~~~~
tkscascor 2010-03-10
  • 打赏
  • 举报
回复
嗯, 我理解你的意思, 你说的是在通讯时候的, 数据及时交流, 即使需要使用数据库存储数据也是处理过的, 大概是这样的意思吧? 我一朋友每天要处理5e-10e条数据, 大概也是这样做的,处理之后再做其他操作的. 但是我的意思并不在及时通讯, 分布式系统数据服务基础数据肯定需要同步吧, 比如注册资料,登陆数据(比如那些检测ip), 你说说,1e人使用20台服务器分担,我这次使用电信的网络接入服务器, 改了一些注册资料,那我下次使用网通的接入服务器这些数据如何及时同步.
我在地球 2010-03-09
  • 打赏
  • 举报
回复
不是 服务器 均衡 就可以实现的 还有 好多 细节
泡面之夏 2010-03-09
  • 打赏
  • 举报
回复
腾讯内部服务器之间采用UDP吧`
关注。。。
xuyang0109 2010-03-09
  • 打赏
  • 举报
回复
很专业的知识,估计是保密的,否则就没办法垄断了。
钱不是问题,资金雄厚的企业有无数。
beckfun 2010-03-09
  • 打赏
  • 举报
回复
研究这个没有意义...总之就算让你知道了这些内容你一个人也不可能完成..腾讯已经累积了这么多年的经验..这么多的服务器肯定不是一下子建立起来的..如果你有一家发展良好的公司.我相信这样的负载均衡的建立,通过几年的完善对你的公司来说也不会是个大麻烦...
bluedoctor 2010-03-09
  • 打赏
  • 举报
回复
也想知道,等待高人。。。。
a124819202 2010-03-09
  • 打赏
  • 举报
回复
phoeni_xin 2010-03-09
  • 打赏
  • 举报
回复
引用 31 楼 hitlcyu19 的回复:
引用 23 楼 zanfeng 的回复:ping 一下就知道了。两个qq之间用的udp根本和服务器没关系。 tcp的东西很少。qq的缓存也不错。
恩 qq只是在登陆的时候会链接到服务器 然后其他的应该就是通过udp来完成了


udp是应该的。
shannonlm 2010-03-09
  • 打赏
  • 举报
回复
了解,学习中。。。。。
  • 打赏
  • 举报
回复
我有个想法。金字塔模式。

登陆服务器为最底层可以有无数多,上面一层做数据同步(比如一个市内的数据同步),在上面一层还是做数据同
步(比如一个省内),最顶层做全国数据同步.这样的话就只用在同层服务器中同步数据了。。。
hitlcyu19 2010-03-09
  • 打赏
  • 举报
回复
引用 23 楼 zanfeng 的回复:
ping 一下就知道了。两个qq之间用的udp根本和服务器没关系。
tcp的东西很少。qq的缓存也不错。

恩 qq只是在登陆的时候会链接到服务器 然后其他的应该就是通过udp来完成了
limii 2010-03-09
  • 打赏
  • 举报
回复
up回复内容太短了!
yahle 2010-03-09
  • 打赏
  • 举报
回复
引用 17 楼 tkascor 的回复:
引用 16 楼 sql77 的回复:
学习一下怎么解决这种问题的
  其实就数据库同步而言, 基本上数据库都提供了自己的同步机制,  或者也可以通过检测数据库变动来同步, 但是要做到及时高效还是个问题.


数据库同步,相当于有一个中心的数据库用于统一存放数据,但是腾讯的qq号量达到几时亿条,单一库应该无能为力吧。
加载更多回复(28)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧