天涯论坛的技术进化史

天涯论坛产品总监 王建科
目录
• 天涯 简介

• 发展 初期

• 快速成长期

• 技术与产品

• 未来 目标
天涯简介
• 一个老牌论坛
 – 成立于1999年3月
• Alexa世界排名100位
 – 中文网站排名15位
• 注册会员5千万
 – 8千万话题、20亿回帖,PV过亿
2003年之前的天涯
1999年2月28日 第一个ID注册成功。
1999年11月10日,宁财神在天涯杂谈发表《天涯这个
烂地方》,正话反说,寄寓了对天涯的一往深情。
1999年12月 天涯被电脑报评为中国“最有人情味社
区”。
2002年4月 慕容雪村在天涯连载网络小说《成都,今夜
请将我遗忘》,阅读量迅速超过20万次,创造了网络文学
史上的一个奇迹。




                     •   1999年,同时在线 80 人
                     •   2000年,同时在线 300 人
                     •   2001年,同时在线 500 人
                     •   2002年,同时在线 1000 人
                     •   2003年,同时在线 8000 人
天涯为什么这么火?
早期天涯帖子内容不分页



      素妆美女(界面简洁不简单)
      大客厅、小包间(栏目齐全不失重点)
      看着舒服(字大不分页)
      没有三纲五常(自由是论坛的生命所在)
      随便洒水(翻贴自由)
      热闹非凡速度好快(人气旺)
      处处是高手(名手多)
      当家的还不错(好的管理队伍)
             —— 天涯网友:长生月
发展初期-技术要点
• 一个版块对应一套表
• 将一个帖子的所有回复追加到一个字段内
    – 500个回复一页(及根据大小分页 300k)
    – 300个回复一页(及根据大小分页 200k)
    – 100个回复一页
•   通过WHERE子句定位分页数据
•   不用联合查询,通过数据冗余回避
•   支持脏读(NOLOCK)
•   应用的无状态
发展初期-技术建议
• 重视前端技术
 – 产品是核心
 – 技术要为产品开发及优化提供快速支撑
• 关注数据库设计
天涯2003-2006
 2004 4台WEB 2台DB
 2005 7台WEB 4台DB
 2006 11台WEB 4台squid 6台DB




 页面缓存 命中率70%

                       2003年,同时在线 8000 人
                       2004年,同时在线 2万 人
                       2005年,同时在线 14万 人
                       2006年,同时在线 20万 人
发展初期-简单扩展
简单拆分



            WEB   WWW1 WWW2




WEB+DB


            DB
                  DB1   DB2
技术建议
设计之初就要自问:

 随着数据规模增加和流量增长能否通过
增加新服务器(DB/WEB)解决性能问题
天涯 2007-2010
2007 双线接入 F5设备
2010 136台应用 38台DB


  开始重视架构设计

               2007年,同时在线 30万 人
               2008年,同时在线 35万 人
               2009年,同时在线 40万 人
               2010年,同时在线 54万 人
技术要点
• 2007年,实现双线双IP,购置F5实现本地及
  全局负载均衡
    – 使用了2台F5-GTM-1500做链路判断
    – 使用了2台F5-LTM-6400实现负载均衡
•   2007年,haproxy部署,动静剥离
•   2008年,数据库双机(事务复制)
•   2009年,Memcache 命中率90%
•   2009年,虚拟机,ICE
•   2010年,Redis、Memlink、分布式文件系统
技术要点
• 动静分离
 – 使用lighttpd来提供静态资源服务。
 – 设置较长的客户端过期时间
• 代理服务
 – 使用haproxy提供七层负载均衡,通过ACL拆分吧不同版块
   应用。
 – 增加URL hash模块,做流量引导。
• 页面缓存
 – 2005年,使用squid-2.6在前端实现页面级缓存。
 – 已经替换成varnish,增加压缩模块,70% Saving,有内容
   有变化时触发更新。
• URL Rewrite输出友好URL
• 将广告、统计等资源放置底部加载
天涯2010的技术架构
链路判断                F5-GTM          Bind

负载均衡                F5-LTM          LVS

反向代理                      HAProxy

页面级缓存                     Varnish
                                           Nginx

应用服务     Lighttpd    IIS+ASP        Resin+JSP        ICE

数据级缓存          Memcache                Redis         Memlink

存储      MSSQL _M    MSSQL _S        MySQL _M       MySQL _S
建立服务可用性监控
• 提前预警、故障报警、故障点快速定位
 – 应用运行中的错误监测
 – 应用可用性监测
 – 服务器及网络设备健康监控
 – 网络流量监控
 – 全国访问质量监测
互联网三要素
     运营


               用户是核心

          用户


产品              技术
产品与技术
• 拙劣的产品设计,会对技术造成很大的麻烦
 –   创新不要发散的,要基于核心目标创新
 –   功能设计时完全忽略技术特性
 –   做了许多只有少部分用户才使用的功能
 –   产品思考不够深入,让技术先行做功能验证


技术人员也要培
养产品意识,重
视用户体验反馈
保持技术朴素
 不一味追求新技术,适
  合的才是最好的,让技
  术保持朴素。
 尽量保持简单、低成本,
  易维护性、可扩展性。
 通过简单、常见的技术
  来组合出灵活的系统。
 支持产品快速优化,前
  端代码要易维护。
                      老技术


                新技术
未来目标-云计算
SaaS    第三方云服务            天涯云服务             应
                                            用
             开放平台        (个人空间,企业空间,论       开
                            坛,微博等等)     服
       (API,编程模型,运行环境)                  务   发
                                        系   规
                   公共服务                     范
PaaS     (会员,支付,虚拟币,反垃圾,搜索,数据挖掘)        统
                                        的
                                        监
            数据存储与访问/ 数据处理 / 消息总线
                                        控
                                        与
                 动态基础架构                 管
                                            先
       (应用部署、资源按需分配、模板化管理、资源动态扩展)       理   进
                                        工   基
IaaS                                    具   础
               (非)虚拟化资源池                    架
                                            构
            数据中心、网络、服务器、存储
谢谢

天涯论坛的技术进化史-Qcon2011