SNS,微博 好友关注和推送功能的数据库设计是怎么实现的底层设计?
2015-01-23 14:15
513 查看
1.假如a有1000万粉丝,a发表了一篇博客,这个行为要通知这1000万粉丝,那么就会有两种情况,
(1) 这1000万粉丝每个人都有一个消息中心表,则发送1000万条信息在系统里通知这个1000万个粉丝,
(2) 系统只有一个消息表,这1000万粉丝固定来这个表里拉取自己的消息,那么这个消息是无状态的,怎么让这个消息在用户那里就是有状态了,未读的消息数,以读消息
(3)采用mongdb设计数据库,则消息表和用户粉丝表 该怎能么存储呢?
希望搞sns的人能给我点知道 多谢!!!修改
举报添加评论 分享 • 邀请回答
赞同8
反对,不会显示你的姓名
姜小狮lion、陈客丁、赵寄筌 等人赞同
这就是服务器缓存技术,有的使用推,有的使用拉。
比如新浪微博FEED使用了拉,但是讲拉做了很大程度的优化,每次拉取数据时参考上次拉取的时间,也就是说每次拉去的时候只是拉去新的,这样就减少了很多资源。每次拉出来的数据是暂存在缓存结构中。而且新浪微博将后台的数据按时间分区存储,这样冷热结合平衡资源配置。
再比如人人网使用的是推,因为每个人的好友一般都是三位数,并不像新浪那样,所以推可以满足人人网的需求。每当有action的时候就向所有的好友推送,每个用户的接受的feed表都是单独的,是现成的,如果有好友动作的话单独添加此用户的feed表
而twitter已经使用nosql来进行新的部署
google+的圈子又是另一种结构,所以存储和拉推的结构肯定又不一样
总之,具体看你的社交结构是怎么样子的所以具体情况使用,根据你的数据量进行分析。一开始用户少就没有必要考虑那么多,等到用户爆机之后才会优化。当用户10万以上的时候,数据库技术的优化就微不足道了,这时候往往开始使用其他手段优化。
互联网的海量存储与快速更新技术都是现在才出现的,所以,每个人都可以想出更多好的方法去实现。或者靠技术人员进行技术代码层次的优化。或者依靠强大的财力进行硬件层次的扩张。
(1) 这1000万粉丝每个人都有一个消息中心表,则发送1000万条信息在系统里通知这个1000万个粉丝,
(2) 系统只有一个消息表,这1000万粉丝固定来这个表里拉取自己的消息,那么这个消息是无状态的,怎么让这个消息在用户那里就是有状态了,未读的消息数,以读消息
(3)采用mongdb设计数据库,则消息表和用户粉丝表 该怎能么存储呢?
希望搞sns的人能给我点知道 多谢!!!修改
举报添加评论 分享 • 邀请回答
赞同8
反对,不会显示你的姓名
w浩森,Engineering
Enthusiast
姜小狮lion、陈客丁、赵寄筌 等人赞同这就是服务器缓存技术,有的使用推,有的使用拉。
比如新浪微博FEED使用了拉,但是讲拉做了很大程度的优化,每次拉取数据时参考上次拉取的时间,也就是说每次拉去的时候只是拉去新的,这样就减少了很多资源。每次拉出来的数据是暂存在缓存结构中。而且新浪微博将后台的数据按时间分区存储,这样冷热结合平衡资源配置。
再比如人人网使用的是推,因为每个人的好友一般都是三位数,并不像新浪那样,所以推可以满足人人网的需求。每当有action的时候就向所有的好友推送,每个用户的接受的feed表都是单独的,是现成的,如果有好友动作的话单独添加此用户的feed表
而twitter已经使用nosql来进行新的部署
google+的圈子又是另一种结构,所以存储和拉推的结构肯定又不一样
总之,具体看你的社交结构是怎么样子的所以具体情况使用,根据你的数据量进行分析。一开始用户少就没有必要考虑那么多,等到用户爆机之后才会优化。当用户10万以上的时候,数据库技术的优化就微不足道了,这时候往往开始使用其他手段优化。
互联网的海量存储与快速更新技术都是现在才出现的,所以,每个人都可以想出更多好的方法去实现。或者靠技术人员进行技术代码层次的优化。或者依靠强大的财力进行硬件层次的扩张。
相关文章推荐
- 微博关注我、我关注你数据库该怎么设计
- 微博关注我、我关注你数据库该怎么设计
- SNS里获取IM、邮箱好友功能技术实现
- SNS底层数据结构的设计架构与开发实现
- 以用户为中心的SNS站点数据库设计及实现
- 安卓Android手机直播推送同步录像功能设计与实现源码
- 简单的asp.net模拟邮箱系统基础实现(一 总体功能版块的设计,与简单数据库的设计)
- java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现
- ASP.NET:Bula,1仿布啦微博数据库设计和网页功能图片
- 【GOF23设计模式】_命令模式_数据库事务机制底层架构实现_撤销和回复JAVA246
- SWING实现新浪微博客户端(1)自动登录功能 (2)提取关注好友信息
- 用JAVA如何实现每天1亿条记录的数据存储,数据库方面怎么设计?
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- jQuery实现微博发布框@好友出现列表功能
- 使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库—服务器段功能实现
- 20180228.利用JsonArray实现功能:好友圈、我的微博。
- SNS里获取IM、邮箱好友功能技术实现
- 安卓Android手机直播推送同步录像功能设计与实现源码
- 系统好友推荐实现之数据库设计实例
- SNS里获取IM、邮箱好友功能技术实现