Feed系统架构资料收集

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 原文: http://blog.csdn.net/zhangzhaokun/article/details/7834797 完全用nosql轻松打造千万级数据量的微博系统 微博feed系统的push和pull模式和时间分区拉模式架构探讨 关于如何构建一个微博型广播 关于如何构建一个微博型广播...

原文: http://blog.csdn.net/zhangzhaokun/article/details/7834797

完全用nosql轻松打造千万级数据量的微博系统

微博feed系统的push和pull模式和时间分区拉模式架构探讨

关于如何构建一个微博型广播

关于如何构建一个微博型广播2

用 mongodb 储存多态消息/提醒类数据

构建高性能的微博系统-再谈新浪微博架构

新浪微博Cache设计@TimYang.pdf

 
 
 
 
 
 
 
最后这篇文章写得很不错的,也基本讲清楚了Feed系统的方方面面的考虑了,基本涉及到了一个Feed系统从小发展到大的全过程了!还没有完全领会到它为用Cassandra替换Redis的理由,或者他还是考虑把Casandra的作为半缓存的结构来替换的,加大Cassandr的内存,可以缓存大量的热数据,当然它的好处是冷热数据都可以完美的持久化,但是数据的一致性处理起来有些麻烦,毫无疑问他会是采用R+W>N的模式,但是无论写多份还是读多份都是有些难于取舍的,Feed系统的写入量本来就很大,如果写入多份的话会大大降低写入的性能,另外,存在Feed的系统,无一例外的是Feed都会是全系统的核心,提高读的性能会大大提高用户的体验,如果读取的时候读多份数据会相对降低性能,到底取舍哪一个呢?我这里光是凭空想象,无法取舍,具体还可以看性能测试来说法,如果有同学做过这方面的压测,还望留言告知下!
 
腾讯微博主要使用拉模型,只有未读的微博数是使用推得模式实现的!拉模型的问题在于一个人跟随了几百或者上千的人的时候,去看关注的人所发的消息要进行多个层次的Map/Reduce才能得到结果,需要非常高效的获取最新Feed的方式以及快速的聚合算法,只用Memcache\Redis之类的从性能上是比较难于实现的,需要从数据层面或者是缓存的层面都进行聚合,再在应用层面进行聚合,技术难度比较大!这个模式属于知易行难,绝大多数公司不具备构建基础设施的能力!

新浪微博使用推拉结合的方式,大号不推送,小号则推送,看Feeds的时候,需要将推过来的Feeds索引数据与关注的大号的Feed进行聚合,小小的牺牲下拉的性能一下子就将大号的推送问题解决掉了!

对于稍微小些的网站,比如Pinterest和花瓣都使用推的方式来实现,PInterest的直接在Redis中保存500个最新的索引信息,使用Python脚本定时来扫描,保证缓存的索引信息始终只保存最新的500个,老的信息则直接丢弃掉,花瓣则将老索引存储到LevelDBA中去了!

Pinterest网站的内容信息缓存在memcache中,关系信息则缓存到Redis中,持久化方式保存!对于那种大号的粉丝,亦或是关注的人数太多则需要将关系数据拆分之后再缓存起来,对于动态变化的部分则需要独立存放,在使用的时候需要将两部分数据聚合,在可变部分达到一定长度的时候,需要与不变的部分进行合并!

当然推送的时候,所有的网站都使用异步的方式来实现!

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 算法
python数据分析——在面对各种问题时,因如何做分析的分类汇总
Python数据分析是指使用Python编程语言对数据进行收集、处理、分析和可视化的过程。Python是一种非常流行的编程语言,具有简单易学、代码可读性高、生态系统强大的特点,因此在数据科学领域得到广泛应用。
83 0
|
12月前
|
机器学习/深度学习 存储 自然语言处理
万字拆解!追溯ChatGPT各项能力的起源 2
万字拆解!追溯ChatGPT各项能力的起源2
|
12月前
|
机器学习/深度学习 消息中间件 人工智能
万字拆解!追溯ChatGPT各项能力的起源
万字拆解!追溯ChatGPT各项能力的起源
|
Web App开发 搜索推荐 安全
【MarTech参考架构】Credera的MarTech参考架构第6部分:AdTech趋势、参与者和衡量
【MarTech参考架构】Credera的MarTech参考架构第6部分:AdTech趋势、参与者和衡量
|
2天前
|
存储
大咖与小白的日常:如何轻松构建千万级Feed流系统?
如何构建类似于微博、小蓝鸟的千万级Feed流系统?来看看大咖如何指导小白。
|
存储 缓存 搜索推荐
从 0 开始设计 Twitter 系统架构
从 0 开始设计 Twitter 系统架构
790 0
从 0 开始设计 Twitter 系统架构
|
数据采集 监控 数据管理
浅述MLOps的价值
通过明确定义的获取数据的位置和类型来标准化元数据管理 加快了解哪些输入和参数是有效的,哪些是无效的时间。 极大地改善了数据科学团队成员之间的协作。
|
机器学习/深度学习 缓存 并行计算
淘宝逛逛ODL模型优化总结
传统的离线天级别模型批训练方式滞后,难以满足业务快速发展的需求,而ODL正是解决这一痛点的关键,这一技术可以让我们充分利用实时数据分布,提升算法效率,拿到更好的业务成果。
1053 2
淘宝逛逛ODL模型优化总结
|
机器学习/深度学习 SQL 分布式计算
当推荐遇到社交:美图的推荐算法设计优化实践
本文是美图高级算法专家汤斌的一篇文章,重点介绍了社交网络背景下推荐算法面临的挑战,以及应对的方法。
247 0
当推荐遇到社交:美图的推荐算法设计优化实践
|
搜索推荐 算法 机器学习/深度学习
独家下载 |《淘系千人千面分发体系全拆解》典型案例实战经验
想了解阿里系内部搜索与推荐是如何支持分发体系关键环节的吗? 想一站获取电商搜索的实战经验总结吗? 想深入学习推荐技术业务价值和核心能力吗?... 搜索&推荐技术应用系列第二本电子书《淘系千人千面分发体系全拆解》来啦!本书全方位视角解读阿里云搜索与推荐技术的实践与应用,带给你全新启迪,快来了解吧
48769 0
独家下载 |《淘系千人千面分发体系全拆解》典型案例实战经验

热门文章

最新文章