新闻推送系统架构设计详解
创作时间:
作者:
@小白创作中心
新闻推送系统架构设计详解
引用
CSDN
1.
https://m.blog.csdn.net/qq_44810930/article/details/145041602
新闻推送系统是现代互联网应用中不可或缺的一部分,无论是社交媒体、新闻平台还是其他内容分发系统,都需要高效、实时的推送机制来满足用户需求。本文将从系统需求分析开始,逐步探讨数据模型设计、API选择、推送策略以及整体系统架构,为构建一个高可用、低延迟的新闻推送系统提供参考。
系统需求与估算
- 功能需求:包括提要发布、检索、通知和分析等功能。
- 非功能需求:需具备高可用性和低延迟特性。
- 估算数据:假设每天有 2000 万活跃用户,每人每天调整五次,由此可得每秒约接收 1000 条推文,按 100:1 的读写比例,每秒约有 10 万个读取请求。若每条推文按 100 字节算,存储 10 年约需 36TB 存储空间。
数据模型概述
- 用户表:包含 id、电子邮件、出生日期、信用信息等,id 作为主线 UID。
- 推文表:有 id、关联用户的外键、文本内容以及用于区分推文类型(如常规推文、转发)的枚举。
- 关注者表:通过两个外键分别记录关注者和被关注者的 id,以明确用户间的关注关系。
- 提要表:与用户和推文相关联,一个用户可拥有多个提要,每个提要包含多条推文,通过外键建立关联,此数据模型虽简单但功能强大,是系统设计的良好起点。
API 设计探讨
- Rest API:具有发布端点(需推文内容和身份验证令牌)和获取端点(提供身份验证令牌获取提要),能满足大部分需求,较为简单实用。
- GraphQL:2015 年由 FACEBOOK 创建,仅有一个端点,通过查询(检索信息)和突变(更改数据)操作,由客户端指定响应形状,可解决数据过度获取问题,扩展性良好,但相对复杂,本文暂以 Rest API 为例进行后续讨论。
推送拉取策略分析
- 推送模型(写入时扇出):新推文发布时立即推送给关注者提要缓存,优点是读取速度快、提要实时生成,但会为不活跃用户计算浪费资源,且存在热键问题(如大 V 发推时资源消耗巨大)。
- 拉取模型(读取时扇出):系统在关注者请求查看提要时才计算新闻源,避免了资源浪费和热键问题,但读取速度慢,难以满足低延迟和高性的非功能需求。
- 混合方法:结合推式和拉式模型,对大多数用户采用推送模型,对粉丝众多的名人采用拉取模型,能较好地平衡资源利用和性能,有效解决提要发布和检索问题。
体系结构与讨论点
体系结构
用户服务:配备用户缓存和数据库,可按需设置图形数据库,用于处理用户基本信息和关注关系,支持快速信息检索。
新闻源服务:与推文服务交互实现发布和检索功能,与通知服务协作,在发布推文时可推送至 Kafka 队列等,并通过通知服务向用户发送邮件、短信等多种形式的通知。
通知服务:与 Kafka 等流媒体服务配合,将通知推送至各类终端。
分析服务:运用 spark 等大数据工具分析使用指标(如每日推文数量、用户与帖子的互动情况等),有助于提升用户体验。
讨论点
无状态服务:利于水平扩展应用程序,不保留用户会话信息。
多实例服务:每个服务设置多个实例,确保系统高可用性,在节点故障时仍能正常处理请求。
多数据中心分布:降低全球用户的延迟,提升服务响应速度。
数据库只读副本:设置多个只读副本处理大量读取负载,可采用领导者追随者方法。
数据缓存:缓存数据提升性能,但需定义缓存策略(如过期政策)。
指标监控与服务定制:监控使用指标,根据请求量变化定制服务,如在高请求时段启动更多服务实例。
媒体存储:存储视频、图像等媒体文件时使用 CDN,加快检索速度,减少延迟,提高整体性能和用户体验。
热门推荐
2025年高考志愿填报全攻略:家长与考生必读的避坑指南与策略
变频空调使用的制冷剂及型号选择(氟类型制冷剂的选择及应用案例)
高考怎么学语文英语单词
ATCA机箱中的风冷研究:分析、计算和实验方法的比较
益生菌、益生元、合生元、后生元,这么多名词你能分的清楚吗?
衣服发黄别再扔!这些妙招让你的衣物焕然一新
「落地干货」如何践行企业文化的核心价值观?14条必读干货
三国杀六人场身份的魅力与策略
真三国无双4:许多玩家最喜欢的无双作品之一,一代人的青春!
新手网约车车主必读:提高成单率的实用技巧
武汉的经济发展如何
陈瑶接棒《雪中悍刀行2》姜泥,重塑经典?换角背后的机遇与挑战
电动自行车新国标下的充电技术革新与安全升级
情绪的韵律:儿童成长中的“情绪周期”
慢性非萎缩性胃炎伴胆汁反流可以吃什么水果
如何计算八厘利息?这些利息计算方式对财务规划有何影响?
使馆点赞甲亢哥:数字时代如何破解跨文化传播密码?
全职高手:叶修的荣耀归来与杨洋的演技蜕变
空气炸锅炸30分钟要多少电费?一文详解不同功率下的使用成本
2025年鼻炎饮食指南:豆浆饮用全攻略
NBA历史十大射手:库里第一无悬念,勇士三人入选,诺维斯基上榜
从CSGO到无畏契约,灵敏度设置全攻略
如何在没有电源按钮的情况下重新启动Android手机?
矮寨大桥景区,一桥飞架南北,尽显人类智慧与自然奇观
急性肠胃炎怎么办?这份治疗指南请收好
想练酒量?还是省省吧
牛腱子热量揭秘:健康饮食的必备知识
夜市文化让大城市的人灵魂有一个栖息地,又让不同的特色美食绽放
电子琴智能教学系统解决方案
配偶继承和子女继承房产的区别是什么