SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
新浪微博 洪小军 	

@XiaoJunHong	

	

厦门爱特咖啡	

新浪微博Feed服务架构	

新浪微博Feed服务架构
•  个人简介
•  洪小军 @XiaoJunHong
•  2009年初加入飞信,互联网业务架构
•  2011年初加入新浪微博,平台架构
新浪微博Feed服务架构
•  讨论范围
•  业务层面:
•  内容、关系、
•  用户、计数...
•  设计层面:
•  缓存、数据库、
•  消息系统...
新浪微博Feed服务架构
•  讨论大纲
•  设计原则
•  设计模式
•  缓存设计
•  数据库设计
新浪微博Feed服务架构
•  讨论大纲
Ø 设计原则
•  设计模式
•  缓存设计
•  数据库设计
新浪微博Feed服务架构
•  CAP原则
新浪微博Feed服务架构
•  Feed设计原则
•  选择可扩展性和高可用性
•  可扩展性:支撑业务的快速增长
•  高可用性:保证系统处于稳定状态
•  妥协一致性
•  最终一致性:消息最终一致
新浪微博Feed服务架构
•  演化方向 – 前期
•  快速搭建并推进上线
Mysql
Web
新浪微博Feed服务架构
•  演化方向 – 中期
•  可扩展性
•  Scale Up:硬件升级、性能优化
•  Scale Out:分布式
•  路线图
•  Scale Up -> Scale Out -> Scale Up
新浪微博Feed服务架构
•  演化方向 – 中后期
•  高可用性
•  Failover:避免单点故障
•  快速失败策略:避免系统hang住
•  降级策略:保证核心功能可用
•  隔离性:避免依赖影响
新浪微博Feed服务架构
•  讨论大纲
•  设计原则
Ø 设计模式
•  缓存设计
•  数据库设计
新浪微博Feed服务架构
•  推拉模式 – 推模式
•  写入消息
insert into feeds(user_id, author_id, feed_id)
select $user_id, follwer_id, $feed_id from followers
•  获取消息
select * from feeds where user_id = $user_id
user_id	
   author_id	
   feed_id	
  
10001	
   20001	
   1111111111	
  
10002	
   20001	
   1111111111	
  
10003	
   20001	
   1111111111	
  
新浪微博Feed服务架构
•  推拉模式 – 推模式
•  空间换时间:存储容量瓶颈?
•  粉丝越多推送量越大:姚晨5000万粉丝怎么推送
•  延迟推送?延迟是否可接受?
•  变更通知成本高:加关注、取消关注、删除
Feed?
•  系统复杂度变高?
新浪微博Feed服务架构
•  推拉模式 – 拉模式
•  写入消息
insert into feeds(user_id, feed_id) values($user_id,
$feed_id)
•  获取消息
select * from feeds where user_id in (
select following_id from following)
user_id	
   feed_id	
  
10001	
   1111111111	
  
10002	
   222222222	
  
新浪微博Feed服务架构
•  推拉模式 – 拉模式
•  时间换空间
•  动态聚合怎么保证响应时间?
•  拉取量太大,带宽容易成为瓶颈
•  并行获取?存储靠近计算?
新浪微博Feed服务架构
•  推拉模式对比
推 拉
获取Feed 简单、高效 实时计算量大,与好友数量
相关
发表Feed 推送给所有粉丝 不推送
变更通知 加关注、取消关注、删除
Feed等都需要变更
不需要
好友多、粉丝少 适合 不适合
好友少、粉丝多 不适合 适合
好友多、粉丝多 ? ?
新浪微博Feed服务架构
•  推拉结合?
•  边界设置
•  在线状态?
•  粉丝数?
•  ……
新浪微博Feed服务架构
•  微博的实践 – 推拉结合
•  主体采用拉模式
•  存储靠近计算
•  按时间归档热数据
•  网络部署结构优化
•  并行获取
•  高效聚合算法
•  ……
•  部分高级功能采用推模式
新浪微博Feed服务架构
•  讨论大纲
•  设计原则
•  设计模式
Ø 缓存设计
•  数据库设计
新浪微博Feed服务架构
•  支撑高并发读取
•  每秒对资源百万级的请求
•  需要保证较低的响应时间
•  假设在内存基础上的架构
•  memory cache
•  memory storage
新浪微博Feed服务架构
新浪微博Feed服务架构
新浪微博Feed服务架构
•  集中式缓存
Mysql
Web
Memcached
新浪微博Feed服务架构
•  问题出现
•  Mysql出现性能瓶颈,读取压力过大
•  缓存命中率较低,大量穿透到后端
•  缓存容量成为瓶颈
•  Memcached出现慢查询情况
•  单机吞吐量有限,读压力超过可支撑最大限度
•  CPU和网络带宽成为瓶颈
新浪微博Feed服务架构
•  压缩存储
•  一定程度减缓容量瓶颈问题
o Protocol Buffer
o Byte Buffer
o QuickLz
新浪微博Feed服务架构
•  分布式缓存
Mysql
Web
MemcachedMemcached ......
新浪微博Feed服务架构
•  问题出现
•  数据库压力持续过大
•  某台缓存机器硬件或网络故障
•  故障期间缓存命中率持续保持在低位水平不见涨
•  单点故障
新浪微博Feed服务架构
•  一致性hash
新浪微博Feed服务架构
•  一致性hash – 加节点
新浪微博Feed服务架构
•  一致性hash – 减节点
新浪微博Feed服务架构
•  一致性hash – 虚拟节点
新浪微博Feed服务架构
•  问题出现
•  数据库瞬间访问量暴增,出现雪崩现象
•  某台缓存机器硬件或网络故障
•  节点故障瞬间穿透到数据库的请求超过可支撑最大负荷
•  单点故障
新浪微博Feed服务架构
•  Master / Slave 策略
Mysql
Web
Memcached
Master Cluster
Memcached
Slave Cluster
新浪微博Feed服务架构
•  Master/Slave可用性和成本的权衡
•  同城IDC互为Master/Slave
•  独立IDC Slave使用成本更低的SSD存储
新浪微博Feed服务架构
•  问题出现
•  出现大量的Memcached慢查询
•  缓存服务器带宽成为瓶颈
•  读取量随着业务的发展在快速增长
•  期望有线性扩容的方案
新浪微博Feed服务架构
•  Line Cache
	
  
	
  
Slave	
  
node1	
   node2	
   node3	
  
	
  
	
  
Master	
  
node1	
   node2	
   node3	
  
	
  
	
  
Line	
  cache	
  
node1	
   node2	
   node3	
  
Client	
  
(get)	
  
新浪微博Feed服务架构
•  问题出现
•  出现大量的Memcached慢查询
•  缓存服务器hang住
•  所有请求延迟N秒
新浪微博Feed服务架构
•  快速失败策略
•  规划资源的SLA值
•  设置合适的超时时间和合理的重试次数
•  满足不了SLA要求自动摘除以达到快速失败目的
新浪微博Feed服务架构
•  打造高可用缓存 – 容量规划
•  请求量
•  命中率
•  预热、防止雪崩
•  带宽
•  网卡、交换机
•  存储容量
•  预估存储大小
•  过期策略、剔除率
•  连接数
新浪微博Feed服务架构
•  打造高可用缓存 – 容量规划
•  每季度至少一次例行性评估
•  重大活动前容量评估
•  系统变更时评估容量
•  监控系统黄色预警
•  日常30%以上冗余
新浪微博Feed服务架构
•  缓存设计小结
•  扩展性
•  集中式
•  分布式
•  Line Cache
•  可用性
•  Failover:一致性hash、master/slave
•  快速失败策略
•  容量规划
•  设计上核心功能只要缓存可用系统就基本可用
新浪微博Feed服务架构
•  缓存设计小结
•  核心业务缓存命中率达到99.9%以上
•  核心系统可在一段时间内仅运行于缓存之上
•  容量规划尤其关键
新浪微博Feed服务架构
•  讨论大纲
•  设计原则
•  设计模式
•  缓存设计
Ø 数据库设计
新浪微博Feed服务架构
•  第一版本Feed快速搭建完成并上线
Mysql
Web
content	
  
id	
   long	
  
content	
   varchar	
  
0meline	
  
uid	
   long	
  
id	
   long	
  
新浪微博Feed服务架构
•  问题出现
•  读请求很慢,大量mysql慢查询和超时情况
•  前端和缓存层面也都做了扩容,但是问题依旧
新浪微博Feed服务架构
•  优化sql语句
•  使用最简单的sql语句
•  避免join、子查询、游标等复杂操作
•  只返回需要的数据
•  合理的使用索引
•  减少随机读,提高性能
•  避免分布式事务
•  BASE原则
新浪微博Feed服务架构
•  数据库就只是作为存储
•  在数据库层面没有任何逻辑
•  业务逻辑应该在应用端处理
•  类似的sql语句
•  select id from timeline where uid =?
•  select id,content from content where id in (?)
新浪微博Feed服务架构
•  问题出现
•  Mysql读写再次出现瓶颈
•  出现瓶颈时各业务互相影响
新浪微博Feed服务架构
•  垂直拆分
•  按业务拆分到不同的端口和数据库中
content
Web
timeline
新浪微博Feed服务架构
•  问题出现
•  Mysql读成为瓶颈
新浪微博Feed服务架构
•  读写分离
master
Web
slave
Read
Replication
Write
新浪微博Feed服务架构
•  问题出现
•  Mysql读再次成为瓶颈
新浪微博Feed服务架构
•  添加slave节点
master
Web
Write
slave
slave
Replication
Read
新浪微博Feed服务架构
•  问题出现
•  Mysql写成为瓶颈
新浪微博Feed服务架构
•  水平拆分
Web
master
slave
master
slave
master
slave
新浪微博Feed服务架构
•  水平拆分
•  分库
•  物理库和逻辑库
•  分表
•  Hash分布和时间分布
新浪微博Feed服务架构
•  一些注意事项
•  拆分为足够多的逻辑库
•  方便后续扩容为物理库
•  避免更改字段
•  亿级数据量的库表更改字段会是怎么样?
•  节省存储空间
•  选择合适的数据类型,能选tinyint就不选int…
•  合理的压缩存储,如pb替换json等
新浪微博Feed服务架构
•  问题出现
•  Mysql出现慢查询
•  更多是发生在查看历史发博量非常大的用户
的微博列表的时候
新浪微博Feed服务架构
•  一级索引按月拆分
•  增加二级索引表
0meline	
  
uid	
   long	
  
id	
   long	
  
0meline_si	
  
uid	
   long	
  
stat_date	
   date	
  
count	
   int	
  
新浪微博Feed服务架构
•  一级索引按月拆分
•  通过二级索引获取对应月份	
  
•  通过一级索引获取具体数据
0meline_si	
  
uid	
   stat_date	
   count	
  
100001	
   2013-­‐08-­‐01	
   2	
  
100001	
   2013-­‐07-­‐01	
   2	
  
100001	
   2013-­‐06-­‐01	
   1	
  
……	
   ……	
   ……	
  
0meline_1308	
  
uid	
   id	
  
100001	
   555555	
  
100001	
   444444	
  
……	
   ……	
  
0meline_1307	
  
uid	
   id	
  
100001	
   333333	
  
100001	
   222222	
  
……	
   ……	
  
0meline_1306	
  
uid	
   id	
  
100001	
   111111	
  
……	
   ……	
  
新浪微博Feed服务架构
•  Sharding小结
•  垂直拆分	
  
•  实现简单	
  
•  扩展能力有限,并且强关联的业务不容易再细拆	
  
•  读写分离	
  
•  主要缓解读压力,读节点可扩展	
  
•  存在主从同步问题,最终体现在一致性问题上	
  
•  水平拆分
•  扩展性强,但是需要预先规划好分库分表策略	
  
•  实现相对比较复杂
新浪微博Feed服务架构
•  问题出现
•  为了抗更大的读写压力,采用更多更好的设备
(ssd等),但是每次扩容都需要扩容整个数
据库(包括所有历史数据),服务器成本非常
高
新浪微博Feed服务架构
•  按年归档-冷热数据分离
Web
2012年
master
slave
slave
slave
2011年
master
slave
slave
2010年
master
slave
2009年
master
slave
slave
slave
slave slave
新浪微博Feed服务架构
•  数据库发展历程小结
•  扩展性:Scale	
  Up	
  -­‐>	
  Scale	
  Out	
  -­‐>	
  Scale	
  Up	
  
•  系统设计:简单	
  -­‐>	
  复杂	
  -­‐>	
  简单	
  
– 水平扩展:垂直拆分	
  -­‐>	
  读写分离	
  -­‐>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  水平拆分	
  -­‐>冷热分离	
  
谢谢

Weitere ähnliche Inhalte

Was ist angesagt?

徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティHiroshi Tokumaru
 
RedisConf18 - Redis at LINE - 25 Billion Messages Per Day
RedisConf18 - Redis at LINE - 25 Billion Messages Per DayRedisConf18 - Redis at LINE - 25 Billion Messages Per Day
RedisConf18 - Redis at LINE - 25 Billion Messages Per DayRedis Labs
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deploymentYoshinori Matsunobu
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsDataWorks Summit
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistentconfluent
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019confluent
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...confluent
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafkaconfluent
 
FHIR REST API 導論與使用
FHIR REST API 導論與使用FHIR REST API 導論與使用
FHIR REST API 導論與使用Lorex L. Yang
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎Will Huang
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Thousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OGeorge Cao
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practicesconfluent
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamSATOSHI TAGOMORI
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 

Was ist angesagt? (20)

徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
 
HBase Storage Internals
HBase Storage InternalsHBase Storage Internals
HBase Storage Internals
 
RedisConf18 - Redis at LINE - 25 Billion Messages Per Day
RedisConf18 - Redis at LINE - 25 Billion Messages Per DayRedisConf18 - Redis at LINE - 25 Billion Messages Per Day
RedisConf18 - Redis at LINE - 25 Billion Messages Per Day
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deployment
 
Supporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability ImprovementsSupporting Apache HBase : Troubleshooting and Supportability Improvements
Supporting Apache HBase : Troubleshooting and Supportability Improvements
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
 
KafkaとPulsar
KafkaとPulsarKafkaとPulsar
KafkaとPulsar
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 
FHIR REST API 導論與使用
FHIR REST API 導論與使用FHIR REST API 導論與使用
FHIR REST API 導論與使用
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Thousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/O
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 

Andere mochten auch

人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析isnull
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版XiaoJun Hong
 
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Tim Y
 
Replication, Durability, and Disaster Recovery
Replication, Durability, and Disaster RecoveryReplication, Durability, and Disaster Recovery
Replication, Durability, and Disaster RecoverySteven Francia
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查bluedavy lin
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
13 tips for a highly engaging feed
13 tips for a highly engaging feed13 tips for a highly engaging feed
13 tips for a highly engaging feedThierry Schellenbach
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术团队
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesSreenivas Makam
 

Andere mochten auch (11)

人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
 
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010
 
Replication, Durability, and Disaster Recovery
Replication, Durability, and Disaster RecoveryReplication, Durability, and Disaster Recovery
Replication, Durability, and Disaster Recovery
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
13 tips for a highly engaging feed
13 tips for a highly engaging feed13 tips for a highly engaging feed
13 tips for a highly engaging feed
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 

Ähnlich wie 新浪微博Feed服务架构

MySQL设计、优化、运维
MySQL设计、优化、运维MySQL设计、优化、运维
MySQL设计、优化、运维Jinrong Ye
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展Hesey
 
MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化Jinrong Ye
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇國昭 張
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构Sky Jian
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践锐 张
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践jackbillow
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统lonegunman
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 

Ähnlich wie 新浪微博Feed服务架构 (20)

MySQL设计、优化、运维
MySQL设计、优化、运维MySQL设计、优化、运维
MySQL设计、优化、运维
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
mercury
mercurymercury
mercury
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
java title
java titlejava title
java title
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
A
AA
A
 

Mehr von XiaoJun Hong

大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化XiaoJun Hong
 
新浪微博redis技术演化
新浪微博redis技术演化新浪微博redis技术演化
新浪微博redis技术演化XiaoJun Hong
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题XiaoJun Hong
 
突发事件中重点信息的筛选与分类
突发事件中重点信息的筛选与分类突发事件中重点信息的筛选与分类
突发事件中重点信息的筛选与分类XiaoJun Hong
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案XiaoJun Hong
 
互联网系统的稳定性保证:微博的实践
互联网系统的稳定性保证:微博的实践互联网系统的稳定性保证:微博的实践
互联网系统的稳定性保证:微博的实践XiaoJun Hong
 

Mehr von XiaoJun Hong (6)

大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
 
新浪微博redis技术演化
新浪微博redis技术演化新浪微博redis技术演化
新浪微博redis技术演化
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
 
突发事件中重点信息的筛选与分类
突发事件中重点信息的筛选与分类突发事件中重点信息的筛选与分类
突发事件中重点信息的筛选与分类
 
大规模数据库存储方案
大规模数据库存储方案大规模数据库存储方案
大规模数据库存储方案
 
互联网系统的稳定性保证:微博的实践
互联网系统的稳定性保证:微博的实践互联网系统的稳定性保证:微博的实践
互联网系统的稳定性保证:微博的实践
 

Kürzlich hochgeladen

函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptxNCU MCL
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】黑客 接单【TG/微信qoqoqdqd】
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptxNCU MCL
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptxNCU MCL
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptxNCU MCL
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxNCU MCL
 

Kürzlich hochgeladen (15)

20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
 
20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 

新浪微博Feed服务架构