SlideShare a Scribd company logo
1 of 53
从林书豪到全明星
虎扑网技术架构如何化解流量高峰




       虎扑网研发经理 洪涛
      ArchSummit 2012 深圳
自我介绍

洪涛

8 年互联网开发
多个大型网站架构经验
2011 年初加入虎扑网
主管研发和架构设计
公司介绍

hupu.com
Alexa 中国排名 90 左右
流量:每天 1 亿 pv




                   3
议程

• 流量高峰从何而来?
• 处理流量高峰时的困扰
• 6 个能够化解流量高峰的技术
• 虎扑网在处理流量高峰时的一些经验




                     4
5
7
从两次事件看虎扑网流量高峰的特点

• 时间发生突然,流量增长迅猛
–流量高峰对系统负载提出了严峻的考验
• 比赛场次多、悬念大
–技术角度无法预测何时出现流量高峰
• 大部分比赛在中国时间的早晨
–出现问题时无法人工干预并及时修复




                     8
流量高峰从何而来?

• 社会热点事件
• 体育赛事,明星
• 电商促销活动
 –淘宝“双 11” 、“抢红包”,京东“ 618”
• 恶意攻击
 –黑客攻击
 –民间团体互掐



                             9
大多数网站应对流量高峰的困扰

• 缺少冗余服务器资源
–流量高峰时没有额外资源用来提升系统性能
• 无法预估流量高峰的发生时间
–系统必须足够“智能”,在尽可能少干预的情况下发
 现流量高峰并且作出应对
• 必须提供稳定服务
–每次流量高峰都是机遇
–网站的存活决定公司的生命


                           10
虎扑网化解流量高峰的策略

• 流量高峰发生前:
–预先处理并缓存页面和数据
–监控系统负载,判断流量高峰是否有发生的趋势
• 流量高峰发生时:
–尽可能多的利用所有服务器向用户提供服务
–削减或调整不必要的服务
• 流量高峰发生后:
–及时恢复正常服务

                         11
技术上如何化解流量高峰?

1.Shared-nothing 架构
2.消息队列
3.微缓存
4.Edge Side Include
5.NoSQL
6.功能调节控制系统



                      12
技术一: Shared-nothing 架构




                         13
Shared-nothing 架构

• 什么是 Shared-nothing ( SN )架构?
 –一个系统(网站)中的每一个节点(应用服务器)
  都是互相独立的,彼此之间没有竞争或冲突。
• SN 在现实生活中的例子
 –电驴, P2P
 –蚂蚁




                                 14
SN 架构如何化解流量高峰?




应用独立型架构    SN 架构


                   15
SN 架构如何化解流量高峰?

• 在传统的应用独立型架构中
 –系统的性能取决于“短板”节点
• 在 SN 架构中
 –系统的性能是其所有节点性能的总和




                      16
升级 SN 架构的三个关键问题

• 如何管理 Session ?
• 如何统一网站应用?
• 如何部署应用?




                       17
问题一:如何管理 Session ?

•SN 架构下管理 Session 的三种方案
 –通过区分 IP 将用户分配到固定的服务器上
  •分布不均匀,易用性差,无法应对复杂的网络环境
  •软件实现逻辑复杂,硬件实现价格昂贵
 –使用外部数据库存储 Session
  •严格意义上并没有实现 SN
 –将 Session 加密后存在 Cookie 里
  •对 Session 数据的大小有限制
  •如何验证 Cookie 有效性?

                             18
问题二:如何统一网站应用?

• 使用统一的开发框架进行应用开发
–虎扑网使用 Symfony 作为基础开发框架
–虎扑网整个网站就是一个应用
• 复杂的异构系统怎么办?
–单机多实例
–虚拟化




                          19
问题三:如何部署 SN 架构下的网站应
        用?
• 应用服务器数量多
–如何快速升级应用到新版本?
• 应用复杂度变高
–如何验证代码的正确性?
–发现问题后如何回滚?
• 部署的新版本需要改变数据库结构怎么办?




                        20
虎扑网的部署策略

1.部署过程可测试
2.灰度部署
3.发布前热机
4.数据库结构调整策略
1.在 SQL 语句中写全字段名
2.字段调整尽量保证向前兼容




                   21
虎扑网的部署工具




           22
技术二:消息队列




           24
使用消息队列后
业务逻辑处理顺序的变化




使用消息队列前   使用消息队列后




                    25
虎扑网对消息队列的要求

• 提供多种消息分发方式
• 高性能
• 多语言支持
• 持久化支持
• 支持集群和扩展




                  26
虎扑网的选择




         27
虎扑网已经部署 RabbitMQ 至生产环境




                         28
消息队列在虎扑网的应用

• 发送邮件和站内短消息
• 图片处理
• 发送手机短信
• 用户访问数据的统计和分析
• 缓冲对数据库的大数据量写和更新操作
• ……



                      29
某应用在部署消息队列后的负载曲线

          部署消息队列前:
          平均压力 0.5
          峰值达到 2.7




          部署消息队列后:
          平均压力 0.5
          无明显峰值




                     30
消息队列如何化解流量高峰?

• 减少“峰值效应”
 –性能需求从满足峰值降低到满足平均值
• 系统运维难度降低
 –系统负载变得平缓,热数据不会突然大量出现
• 更加合理利用资源
 –将一部分业务放在空闲时段处理
 –闲置的计算资源可以被充分利用起来



                         31
技术三:微缓存




          32
经典的缓存方式

    Nginx       App          Memcache
                (PHP-FPM)




1. 接受浏览器请求
2. 透传所有请求去访问 App
3.App 判断 Cache 是否可用,如果不可用则生成 Cache
4. 如果 Cache 可用则获取 Cache
5.Web Server 获取到 App 返回的结果
6.Web Server 将结果返回给用户



                                        33
什么是微缓存?

    Nginx        App
                 (PHP-FPM)

     Nginx
     Cache




1. 接受到大量请求
 2a. 透传其中的一个请求去访问 App
 3a. 将 App 返回的结果写入 Cache
 2b. 直接从 Cache 读取页面缓存
 3b. 将 Cache 的结果直接返回给用户




                             34
微缓存的优势

• 优势
 –部署简单
  •使用时仅需配置前端反向代理(如 Nginx )
 –应用偶和度低
  • 不侵占应用 、不修改程序代码
 –页面更新速度快
  •透传频率可调,最快每秒一次(以 Nginx 为例)
 –即使访问量再大,程序运行次数依然是固定的


                               35
微缓存的适用场景

• 在同一时间点,用户访问某页面的结果相同
–门户网站首页
–新闻 / 视频 / 图片的评论、回复
–论坛列表页、回复页
–碎碎念(微博)
–……




                        36
技术四: ESI ( Edge Server Include )




                                   37
包含页面片段的三种解决方案

• Client Side Include
 –实现原理:通过 javascript 、 iframe 载入其他页面
• Edge Side Include
 –实现原理:通过 ESI 标签中的 url 地址获取页面嵌
  套内容
• Server Side Include
 –实现原理:通过 SSI 标签中的文件地址获取页面嵌
  套内容


                                   38
ESI 和 SSI 的两点最重要的区别

• 载入方式不同:
 –SSI 只能加载静态文件和本地 HTTP 地址
 –ESI 可以加载远程 HTTP 地址,且可以设置 TTL 时
  间
• 各类 Web 服务软件的支持度不同
 –SSI 主要被用在各种 Web 服务器上,例如 Nginx 、
  Apache
 –ESI 主要被用在各种前端缓存服务器上,例如
  Varnish 、 Squid

                                   39
ESI 如何解决性能问题?

• 为了显示页面中的动态元素
–使用 ESI 前:
 •通过 CSI 载入动态元素
 •频繁的重新生成静态页面或页面缓存
–使用 ESI 后:
 •通过 ESI 请求一个接口,缓存并将页面进行组装
 •可以为不同的页面片段分别设定过期时间( TTL )




                              40
页面头部
 TTL :永久


 视频及播放数
 TTL : 5 分钟




相关视频
TTL : 60 分钟

留言
TTL :新内容产生时
今日头条推荐
TTL : 24 小时



           41
ESI 应用的场景

• 复杂页面(包含多个复杂组件)
• 分布式网站应用
–从远端服务器中获取页面数据
–在本地服务器进行页面组装
• 模拟多线程处理网页




                   42
技术五: NoSQL




             43
虎扑网使用的 NoSQL 服务

• Memcache
 –30%
• Tokyo Tyrant
 –40%
• Redis
 –30%
• Mongodb
 –开发中的游戏项目正在内部试用

                            44
虎扑网使用 NoSQL 的一些经验

• 勤用 Redis 的数据结构解决各种问题。
 –List 可以当做简单的消息队列来使用
 –Sorted Set 用来存放各种排序数据
• 使用 SSD 作为持久化的容器
 –虎扑网大量使用英某某公司的 520 系列
• Redisco
 –用 Redis 模拟类 SQL 操作的 Python 类库



                                  45
Redisco
               MySQL                           Redis(With Redisco)

select * from person..                 Person.objects.all()


      ..where name = ‘a’               Person.objects.filter(name='a')


      ..where name != ‘a’              Person.objects.exclude(name='a')


      ..where age > 5                  Person.objects.zfilter(age__gt=5)


      ..where name = ‘a’ and age > 5   Person.objects.zfilter(name=‘a’,age__gt=5)


      ..where name = ‘a’ limit 0 1     Person.objects.all().limit(1)


      ..order by name                  Person.objects.all().order('name')




                                                                                    46
技术六:功能调节控制系统




               47
作用

• 调节应用与服务的复杂度
• 开启或关闭某个功能




                48
实际例子 1

• 赛事文字直播
 –通过降低页面自动刷新的频率,增加系统相应能力

通过增加一倍的间隔时间,可服务用户数也会增加一倍
假设:单台服务器可以提供 500 的 RPS
           自动刷新间隔    可服务用户


             12 秒   12*500=6000


             24 秒   24*500=12000



                                   49
实际例子 2

• 新闻留言
 –关闭复杂功能,增加系统性能




                  50
功能调节控制系统的意义

• 通过监测系统负载,调节各项影响性能的参数
  和配置,提高响应能力,使系统尽可能地服务
  更多的用户。




                     52
虎扑网在处理流量高峰时的一些经验

• 停止新版本的部署,保持线上环境稳定。
•除非是紧急修复问题或提高性能的补丁
• 禁止搜索引擎抓取页面。
• 禁止第三方网站的页面请求。
• 禁止访问次数过于频繁的 IP
• 暂时封禁“过于活跃”的网站用户


                       53
参考资料
•   虎扑网架构
     –   《 2011 架构师大会:虎扑网架构升级之路》 http://wenku.it168.com/d_000055728.shtml
     –   《 2011 架构师大会:基于 Symfony 框架下的快速企业级应用开发》 http://wenku.it168.com/d_000055742.shtml
•   林书豪
     –   《林书豪 - 百度百科》 http://baike.baidu.com/view/3143415.htm
     –   《林书豪 - 维基百科》 http://zh.wikipedia.org/zh/%E6%9E%97%E6%9B%B8%E8%B1%AA
•   季后赛
     –   《 NBA 季后赛 - 维基百科》 http://zh.wikipedia.org/wiki/NBA%E5%AD%A3%E5%90%8E%E8%B5%9B
•   网站流量高峰从何而来?恶意攻击
     –   《爆吧》 http://baike.baidu.com/view/423530.htm
•   Shared-nothing
     –   《 Shared nothing architecture 》 http://en.wikipedia.org/wiki/Shared-nothing
     –   《 The Share-Nothing Architecture 》 http://zef.me/883/the-share-nothing-architecture
     –   《 What is the best PHP MVC framework for scalability 》 http://stackoverflow.com/questions/132056/what-is-the-best-php-mvc-framework-for-
         scalability
     –   《 将 Session 加密在 Cookie 里的 PHP 实现: sfCookieSessionStoragePlugin 》 http://plugins.symfony-
         project.org/get/sfCookieSessionStoragePlugin/sfCookieSessionStoragePlugin-0.9.2.tgz
•   Webistrano
     –   《 Webistrano - Capistrano deployment the easy way 》 http://www.peritor.com/en/products/webistrano/
     –   《 Capistrano 》 https://github.com/capistrano/capistrano




                                                                                                                                              54
参考资料
•   RabbitMQ
     –    《 rabbitmq.com 》 http://www.rabbitmq.com/
     –    《 Rabbitmq Client & Developer Tools 》 http://www.rabbitmq.com/devtools.html
     –    《 Rabbitmq in Action 》 http://www.manning.com/videla/
•   微缓存
     –    《 MICROCACHING: SPEED YOUR APP UP 250X WITH NO NEW CODE 》 http://fennb.com/microcaching-speed-your-app-up-250x-with-no-n
     –    《 Microcaching - Hacker News 》 http://news.ycombinator.com/item?id=3109283
     –    《 Nginx - HttpProxyModule 》 http://wiki.nginx.org/HttpProxyModule
     –    《 nginx microcaching config example 》 https://gist.github.com/1283573
     –    《 Why You Should Always Use Nginx With Microcaching 》 http://www.howtoforge.com/why-you-should-always-use-nginx-with-microcaching
•   ESI
     –    《 ESI - 维基百科》 http://en.wikipedia.org/wiki/Edge_Side_Includes
     –    《 Varnish-cache : ESI Features 》 https://www.varnish-cache.org/trac/wiki/ESIfeatures
     –    《 Varnish-cache: Tutorial ESI 》 https://www.varnish-cache.org/docs/3.0/tutorial/esi.html
     –    《 Apache Tutorial: Introduction to Server Side Includes 》 http://httpd.apache.org/docs/2.2/howto/ssi.html
     –    《 Symfony 2 - HTTP Cache 》 http://symfony.com/doc/current/book/http_cache.html#edge-side-includes
     –    《 How to use Varnish to speed up my Website 》 http://symfony.com/doc/current/cookbook/cache/varnish.html
•   NoSQL
     –    《 Redisco 》 https://github.com/kiddouk/redisco
     –    《 Introducing redisco - Python Containers and Simple Models for Redis 》 http://www.timmedina.net/introducing-redisco-python-containers-
          and-sim
     –    《 python 使用 redis 神器 ---redisco 》 http://pako.iteye.com/blog/1581139




                                                                                                                                                    55
谢
谢!
Thanks!

More Related Content

What's hot

豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎frogd
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Jinrong Ye
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台drewz lin
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性Xuefeng Zhang
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3redhat9
 
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)frogd
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStackRongze Zhu
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 

What's hot (20)

豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
Openstack网络规划
Openstack网络规划Openstack网络规划
Openstack网络规划
 
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
 
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStack
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Zabbix in PPTV
Zabbix in PPTVZabbix in PPTV
Zabbix in PPTV
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
美团技术团队 - KVM性能优化
美团技术团队 - KVM性能优化美团技术团队 - KVM性能优化
美团技术团队 - KVM性能优化
 

Viewers also liked

Smart Approach To Smart Learning 4 Coft
Smart Approach To Smart Learning 4 CoftSmart Approach To Smart Learning 4 Coft
Smart Approach To Smart Learning 4 Coftyangkwa
 
如何使用工具提高PHP项目的生产力
如何使用工具提高PHP项目的生产力如何使用工具提高PHP项目的生产力
如何使用工具提高PHP项目的生产力Scourgen Hong
 
大象也会跳舞 - 使用Symfony2快速开发网站应用
大象也会跳舞 - 使用Symfony2快速开发网站应用大象也会跳舞 - 使用Symfony2快速开发网站应用
大象也会跳舞 - 使用Symfony2快速开发网站应用Scourgen Hong
 
虎扑网架构升级之路
虎扑网架构升级之路虎扑网架构升级之路
虎扑网架构升级之路Scourgen Hong
 
Intuitive Appeal of Learning Styles
Intuitive Appeal of Learning StylesIntuitive Appeal of Learning Styles
Intuitive Appeal of Learning StylesLuis Pinto
 
Belieforama - A panoramic approach on issues of religion and belief.
Belieforama - A panoramic approach on issues of religion and belief.Belieforama - A panoramic approach on issues of religion and belief.
Belieforama - A panoramic approach on issues of religion and belief.Luis Pinto
 
Why Start A Home Base Travel Business?
Why Start A Home Base Travel Business?Why Start A Home Base Travel Business?
Why Start A Home Base Travel Business?D Kaye Arori
 
A Zinneke Approach to Curriculum Development
A Zinneke Approach to Curriculum DevelopmentA Zinneke Approach to Curriculum Development
A Zinneke Approach to Curriculum DevelopmentLuis Pinto
 

Viewers also liked (12)

Smart Approach To Smart Learning 4 Coft
Smart Approach To Smart Learning 4 CoftSmart Approach To Smart Learning 4 Coft
Smart Approach To Smart Learning 4 Coft
 
Mempersiapkan presentasi
Mempersiapkan presentasiMempersiapkan presentasi
Mempersiapkan presentasi
 
Autonome voertuigen
Autonome voertuigenAutonome voertuigen
Autonome voertuigen
 
Santos no mundo
Santos no mundoSantos no mundo
Santos no mundo
 
如何使用工具提高PHP项目的生产力
如何使用工具提高PHP项目的生产力如何使用工具提高PHP项目的生产力
如何使用工具提高PHP项目的生产力
 
大象也会跳舞 - 使用Symfony2快速开发网站应用
大象也会跳舞 - 使用Symfony2快速开发网站应用大象也会跳舞 - 使用Symfony2快速开发网站应用
大象也会跳舞 - 使用Symfony2快速开发网站应用
 
虎扑网架构升级之路
虎扑网架构升级之路虎扑网架构升级之路
虎扑网架构升级之路
 
Intuitive Appeal of Learning Styles
Intuitive Appeal of Learning StylesIntuitive Appeal of Learning Styles
Intuitive Appeal of Learning Styles
 
Belieforama - A panoramic approach on issues of religion and belief.
Belieforama - A panoramic approach on issues of religion and belief.Belieforama - A panoramic approach on issues of religion and belief.
Belieforama - A panoramic approach on issues of religion and belief.
 
Php重装上阵
Php重装上阵Php重装上阵
Php重装上阵
 
Why Start A Home Base Travel Business?
Why Start A Home Base Travel Business?Why Start A Home Base Travel Business?
Why Start A Home Base Travel Business?
 
A Zinneke Approach to Curriculum Development
A Zinneke Approach to Curriculum DevelopmentA Zinneke Approach to Curriculum Development
A Zinneke Approach to Curriculum Development
 

Similar to 从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰

美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规yangdj
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍mysqlops
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】inwin stack
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能beiyu95
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用iammutex
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfjaydenhu
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 

Similar to 从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰 (20)

美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 

从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰

Editor's Notes

  1. 1. 通过两个体育领域的例子,解释流量高峰产生的原因 2. 中小型网站 3. 虎扑网用到或我以前工作经验 4. 一些经验
  2. 1. 介绍林书豪,早期不被看好,纽约尼克斯, 2 月初爆发,媒体:超过姚明、最有可能接近篮球之神乔丹的人 2. 无准备,突然爆发,流量增长 50% 以上,宕机
  3. 1.nba 季后赛,东西各 8 支球队,打近百场比赛 2. 比赛场次多,持续时间久,比赛悬念大,预测高峰困难
  4. 总结在后一页
  5. 加字段,先加字段,后升级 删字段,先升级,后删字段
  6. 解决办法 2 :虎扑目前的 passport 和支付都是独立的
  7. 4. 举例:有 10000 个页面,透传频率为 10 秒一次,那每秒的 rps 则平均为 1000
  8. 注意: 微缓存并不是静态化的替代品,也不能完全代替 Memcache 缓存
  9. 1. 实现方式是建索引并且取交集, O ( N*M )
  10. 例子,看电影