"构建可扩展微博架构"PPT学习笔记

1. 业务

  • 核心模型:用户、关系、Feed
  • 把微博比作邮件:Inbox、Outbox
  • 主要业务功能:发布、查看

2. 技术架构

  • 微薄本质:消息分发系统
  • 信息聚合设计模式:PULL、PUSH
    • PUSH:简单,是实现的首选;分发量大;冗余存储大
    • PULL:节约存储;计算量大

3. 架构挑战

1)除夕、春节时的系统峰值处理

解决方案:异步设计

-不同步等待

-将消息存入MQ:大量使用Memcacheq,提到使用MQ的原则“计算开销大于消息分发开销”(不太理解)

-轻量级的发表

 

2)实时性

解决方案:Cache中心化,Ram is the new the disk

-多层次的Cache:Local Cache;Memcached;Database buffer/cache

-容量问题(TB级):压缩(QuickLZ、LZO、不使用gzip)

-单点问题:Consistent hash;Read-through cache

-避免evictions:容量规划;区分永久数据、临时数据;不使用随机字符做为KEY

-multiget hole问题:Memcached replication  

 

如何实现Read-through and write-througe cache:

-产品或者项目:MySQL memcached UDF;Cache money for Ruby on Rails

-wrap a proxy for the db driver

 

3)海量存储

 

4)国内网络带宽

-存在问题:访问速度、IDC不可用、故障

-分布的核心是数据分布(http://timyang.net/data/multi-idc-design/

 

5)API访问量

-使用REST API

-使用SAE解决轮询压力

 

 

 

 

猜你喜欢

转载自lcycenter.iteye.com/blog/1114339
今日推荐