IT老齐架构300讲笔记(051) 微博架构中大V更新动态,动态通知采用推Push还是拉Pull更合适

目录

一、推模式(Push)与拉模式(Pull)有什么不同

二、写扩散与读扩散该如何优化应对

2.1 写扩散(Push)优化

2.2 读扩散(Pull)优化

2.3 推特的混合模式

专栏链接: IT老齐架构300讲笔记


一、推模式(Push)与拉模式(Pull)有什么不同

Push模式

Pull拉取模式

实时性

较好,通过网络管道准实时发送

较差,取决于定时轮询时间

服务器状态

有状态需持久化粉丝动态队列

无状态,根据请求实时查询

风险项

V动态的并发写扩散问题

大量动态队列持久化造成磁盘高IO

大量粉丝准点读扩散问题

V粉丝准点并发查询搞垮服务器

应用场景

微信

微博(早期)

二、写扩散与读扩散该如何优化应对

2.1 写扩散(Push)优化

  • 设置上限,微信好友5000
  • 限流策略X分钟内完成消息发布
  • 优化存储策略,采用NoSQL或大数据方案

2.2 读扩散(Pull)优化

  • MQ削峰填谷超长队列直接拒绝
  • 增加轮询间隔减少请求次数
  • 服务端增加缓存优化查询效率
  • 增加验证码分散时间,减少机器人刷票

2.3 推特的混合模式

  • 粉丝量小于XPush模式
  • 粉丝量大于XPull模式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值