本文分享自华为云社区《华为云PB级数据库GaussDB(for Redis)揭秘第六期:Feed流场景中的应用》,原文作者:高斯Redis官方博客。
GaussDB(for Redis)(下文简称高斯Redis),是华为自研的强一致、持久化NoSQL数据库,兼容Redis5.0协议。
在互联网时代,我们日常生活充斥着Feed流,微信朋友圈、微博、抖音以及头条等等都在使用Feed流,将我们关注的好友或感兴趣的内容及时推送给我们,使我们沉沦其中无法自拔,带来商业价值的提升。接下来将和大家一起探讨常见的Feed流系统包含的概念、架构和挑战以及如何使用高斯Redis设计一个Feed流系统。
数据库主键、Feed流系统从形式上是Feed生成者将生产的Feed经过存储分发系统传递给Feed消费者,最终以某种展现形式。
通过上述的概念介绍,我们来看Feed如何从Feed生产者最终流转到Feed消费者。
Feed生产者创作一条内容后发到Server端,Server端先将消息内容存储到消息存储模块,接着根据信箱模块的设计查询关系存储库将通知信息写入信箱模块, Feed消费者通过查询信箱获取及时消息。
mysql怎么建立数据库,消息存储模块:
Feed内容一般都是半结构化数据,数据量大,需要持久化内容,逻辑上就是一个KV系统,ID到内容的映射关系。
关系存储模块:
关联关系会发生新增和删除,是一个变长的集合,需要能够支持快速的增删查动作,一般不需要支持join等复杂操作。因此NoSQL数据库比较适合这类数据的存储。
信箱模块:
说到信箱模块一般大家都会讨论是采用推模式、拉模式或推拉模式结合方式。在华为云PB级数据库GaussDB(for Redis)揭秘第五期:高斯 Redis 在IM场景中的应用 也有过讨论。
推模式,在查询完关联关系后,将Feed通知写入到每个Feed消费者的收件箱中,Feed消费者查询自己的收件箱就能获取完整的Feed流,通知会写入每个需要通知的人收件箱,写会放大。
数据库使用?拉模式,将Feed通知写入自己的发件箱,Feed消费者先查询关系库,然后从所有关注人的发件箱中获取Feed消息后合并展示,因此收件箱被读次数和被关注人数目有关,读会放大。
推拉模式结合:针对大多数用户的写入用推模式,特定用户采用拉模式,Feed消费者读取时分别读取自己的收件箱和特定用户的发件箱,合并之后展示。
华为gaussdb数据库,究竟选用哪种模式,看具体业务场景和要求。
很多业务在具体实现的时候,会先将消息写入消息队列,一方面可以起到流量削峰的作用,另一方面可以实现一些特定的推送优化逻辑,如判断为垃圾广告或者敏感词不进行推送。
我们首先从微信朋友圈公布的数据来感受一下。在2021年1月19日,在微信公开课Pro上微信创始人张小龙披露微信最新数据:微信每天有7.8亿用户进入朋友圈,1.2亿用户发表朋友圈。平均每人打开浏览十几次,每天100亿次浏览量。若我们想实现类似的Feed流系统会有什么挑战。从存储量上来看,若用户平均每天发送3次朋友圈,每条内容1kB,一年大约1000亿条记录,存储容量接近100TB。从访问请求次数来看,每天写入和读取OPS峰值至少百万级别,用户写入和读取延迟都要有实时性,响应时间至少都要在秒级内,否则用户分分钟关闭APP。因此我们需要一个持久化、海量存储、高吞吐、易扩展、低延迟、低存储成本的分布式存储系统。
华为自研数据库、高斯Redis是华为云数据库团队自主研发且兼容Redis5.0协议的云原生数据库,采用计算存储分离架构。存储侧使用自研的存储系统DFV,容量无限扩展、强一致、高可靠。计算侧基于 LSM 存储引擎实现,具有极佳的写性能和读性能。利用计算分离架构的优势,高斯Redis扩容无需进行数据拷贝,实现秒级扩容,充分发挥了云原生的弹性伸缩、资源共享的优势。
针对Feed流场景,可以按照如下方式使用高斯Redis:
以下用高斯Redis实现一个简单的微博样例,采用写扩散模型,用以说明可行性。
系统中存在四个用户,Jay、Jolin、ZhangSan、LiSi。其中ZhangSan、LiSi关注了Jay,LiSi同时关注了Jolin。
华为数据库在哪里。
阿里数据库和华为数据库?
以上实现了一个简单的微博系统,真实系统会比这个复杂,会涉及业务场景特定处理逻辑。用高斯Redis作为Feed流存储底座是比较理想的技术选型。
高斯Redis具有持久化、海量存储、高吞吐、易扩展、低延迟、低存储成本等优点, 作为Feed流存储底座非常合适,其优异的读写性能和高级特性将会极大简化应用开发。同时,高斯Redis在开源Redis基础之上,较好平衡了性能和成本,能够广泛应用在智慧医疗、流量削峰、计数器等领域。
本文作者:华为云高斯Redis团队。
更多技术文章,关注高斯Redis官方博客:https://bbs.huaweicloud.com/community/usersnew/id_1614151726110813
华为的数据库、
点击关注,第一时间了解华为云新鲜技术~
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态