大数据-微信朋友圈技术实现讨论

作者:用户 来源:互联网 浏览:998 次 时间:2016-02-26 13:42:16

大数据技术数据存储架构设计

大数据-微信朋友圈技术实现讨论 - 摘要: 微信朋友圈技术实现讨论请教大家一个问题,微博关注好友动态主页,和微信朋友圈动态列表,后端架构设计都是如何实现的?自己想到的是:方案一:1:首选是取我的好友列表,这个有自己的好友列表cache维护,不能

问题描述

微信朋友圈技术实现讨论

请教大家一个问题,微博关注好友动态主页,和微信朋友圈动态列表,后端架构设计都是如何实现的?
自己想到的是:
方案一:
1:首选是取我的好友列表,这个有自己的好友列表cache维护,不能直接查询db,考虑到数据量很大情况下的伸缩性必须满足。
2:再根据我的好友ids再去取他们发表的微博或者动态,按照时间排序,这个无疑是拿着user_ids in 动态数据表,这点感觉性能很致命。

方案二:
对比方案一,关系性数据库在面临大数据的时候系能会显得比较疲惫,考虑采用NoSQL,如:Mongodb,HBase ,Redis等产品。
综合对比,倾向选用HBase。Mongodb莫名丢数据时而常有的事情;Redis Master-Slave结构面临单机内存垂直增长受限,Redis 3.0目前支持Cluster,配合Sentinel,貌似能保证sharding nothing又能保证高可用,但是Redis Cluster生产环境没有实用经验。得补充一点就是代码上线前,需要处理已有好友关系的动态数据存储,从mysql考虑用job一次性跑到NoSQL中,这样保证我关注的人,先前发的动态我也能看到。

大家有什么好的建议呢?

解决方案

没有做过类似业务,但可以分析一下
1)有一点可以肯定微博、朋友圈发表内容是按时间分库分表存储的,而且考虑到数据量和查询效率不会使用纯关系型数据库存储,一般Mongodb、Redis或者自研的类似db。
2)考虑到数据的时间越久越冷,越新越热,会有cache的策略来提速“热”数据的检索和支持更大的并发;
3)数据至少有一个热备份,数据和备份是一种弱一致性关系;
4)使用消息队列异步化数据写入,提高前端响应。
先想这么多,欢迎大家来补充!

【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答  详情请点击
云栖社区(yq.aliyun.com)为您免费提供大数据-微信朋友圈技术实现讨论相关信息,包括 大数据技术数据存储 架构设计 的信息 ,所有大数据-微信朋友圈技术实现讨论相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_31916,您可以点击大数据-微信朋友圈技术实现讨论-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航