专访腾讯徐汉彬:日请求高达3.5亿+平台的架构设计及演变

发表于11小时前| 2426次阅读| 来源CSDN| 3 条评论| 作者钱曙光

SDCCSDCC讲师专访腾讯徐汉彬架构WebPHP
width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-10-28%2F2826057&type=3&count=&appkey=&title=%E6%9D%A5%E8%87%AA%E8%85%BE%E8%AE%AF%E7%9A%84%E5%BE%90%E6%B1%89%E5%BD%AC%E5%B0%86%E5%9C%A8SDCC%202015%E6%9E%B6%E6%9E%84%E5%88%86%E8%AE%BA%E5%9D%9B%E5%81%9A%E5%88%86%E4%BA%AB%EF%BC%8C%E4%BB%96%E6%98%AFAMS%E5%B9%B3%E5%8F%B0%E7%9A%84%E5%88%9D%E5%A7%8B%E7%A0%94%E5%8F%91%E4%BA%BA%E5%91%98%EF%BC%8CAMS%E4%BB%8E%E6%97%A5%E8%AF%B7%E6%B1%82%E9%87%8F200-500%E4%B8%87%E7%9A%84%E9%98%B6%E6%AE%B5%E5%BC%80%E5%A7%8B%EF%BC%8C%E4%B8%80%E7%9B%B4%E5%A2%9E%E9%95%BF%E5%88%B0%E6%97%A5%E8%AF%B7%E6%B1%82%E8%BE%BE%E5%88%B03.5%E4%BA%BF%2B%E3%80%82%E5%9C%A8%E4%B8%89%E5%B9%B4%E5%A4%9A%E7%9A%84%E6%97%B6%E9%97%B4%E9%87%8C%EF%BC%8C%E4%BB%96%E8%A7%81%E8%AF%81%E4%BA%86%E4%B8%80%E4%B8%AAWeb%E7%B3%BB%E7%BB%9F100%E5%80%8D%E6%B5%81%E9%87%8F%E5%92%8C%E4%B8%9A%E5%8A%A1%E8%A7%84%E6%A8%A1%E7%9A%84%E5%A2%9E%E9%95%BF%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1446041144362" frameborder="0" scrolling="no" allowtransparency="true">摘要:来自腾讯的徐汉彬将在SDCC 2015架构分论坛做分享,他是AMS平台的初始研发人员,AMS从日请求量200-500万的阶段开始,一直增长到日请求达到3.5亿+。在三年多的时间里,他见证了一个Web系统100倍流量和业务规模的增长。

CSDN年度技术盛宴 “SDCC 2015中国软件开发者嘉年华”将于2015年11月19-21日在北京召开。CSDN软件研发频道将采访一些与会讲师,谈谈他们将在会上分享的内容。

本期我们采访的讲师是来自腾讯的 徐汉彬(微博 @Hansion徐汉彬),现任SNG增值产品部高级工程师,QQ会员AMS运营平台技术负责人,会员体系合作线技术负责人。曾任职于阿里巴巴、小满科技。

他也是AMS的初始研发,将AMS从日请求量百万级升级至亿级,负责该平台的架构设计和研发建设,在Web系统设计和架构拥有超过5年的经验,2010年加入阿里巴巴,2012年加入腾讯。

CSDN:请和大家介绍下你和目前所从事的工作。

徐汉彬:大家好,我目前是腾讯增值产品部的高级工程师(T3),QQ会员活动运营平台(AMS)的技术负责人,主要负责AMS平台的架构设计和研发建设。AMS运营平台是一个主要用于活动运营和推广的Web系统(承载的活动运营业务包括腾讯游戏、QQ会员生活特权、QQ会员体系、QQ钱包等业务),日均CGI请求3.5亿+,每月上线400+活动项目,在应对大规模流量和运营业务研发建设方面,有比较丰富的实践经验和技术沉淀。

CSDN:你是如何走上技术这条路的?

徐汉彬:2007年读大学时,我用jsp写了一个完整的博客系统,那是我做的第一个技术项目,完成那一刻难以言表的兴奋和激动,我仍然记忆犹新。从那个时候开始,我确信我是个热爱技术的人。我毕业之后加入阿里巴巴,然后顺着技术的路走下去了。回想起来,很多年已经过去了,不过,我对技术的热情并没有改变,坚持学习,努力尝试,希望能够做得更好。

CSDN:你对架构是怎样理解的?

徐汉彬:我是AMS平台的初始研发人员,AMS从日请求量200-500万的阶段开始,一直增长到日请求达到3.5亿+。在三年多的时间里,我见证了一个Web系统100倍流量和业务规模的增长,同时,对它的架构进行了四次的升级和调整,走过了一段非常难忘的历程,也让我对“架构”有更深的认识和理解,对技术心怀敬畏之心。

不同的架构解决不同场景的问题,尤其对于业务系统的架构来说,解决业务场景的问题,是第一要务。我认为并不存在完美的架构,因为,随着业务的发展和变化,架构也会随着不断变化和调整,以适应新场景和解决新问题。而且,有不少的业务场景,是在架构设计之初是比较难考虑到的。当然,架构的设计也很重要,要尽量保持通用,保持可扩展性,可以在系统后期避免很多问题。因此,需要寻找一个平衡,尽量采用合适的架构来解决当前业务问题,才能达到比较优的投入产出比。

CSDN:作为QQ会员AMS运营平台技术负责人,能否简要介绍下该平台的架构设计及演变?

徐汉彬:AMS平台的架构设计,主要的目的是为了满足活动运营的高效率开发和在线运营的业务场景。我们通过3年多的努力,从最初1个月上线20-30个活动的规模,做到1个月能够上线430多个活动(平台参与的开发人只有10多人,活动项目上线的主力人员是运营同学),平台架构设计的需要强力支持“开发效率”。另一方面,对于AMS平台的架构对可伸缩和可扩展要求极高,因为不同的活动有不同的后端接口和服务,例如100多款的游戏角色查询,涵盖1000多个后端接口。还有就是性能挑战,活动的特点又很容易带来流量暴发,例如秒杀活动。

AMS平台的架构演变分为三方面:

  1. 解决开发活动的效率问题,通过平台来优化研发流程。在2012年的时候,我们按照常规模式开发一个活动,大概需要1周的开发时间,如果算入整个研发流程:策划、设计、重构、开发、测试、上线,每一个环节人都是独立不同人完成,整个项目下来2周的项目耗时非常常见。而实际上在今天,我们上线一个活动项目耗时,大部分只需要2-3天。我们通过平台的辅助和建设,解放了重构、开发、测试的人力耗时,最终达到项目流程级别的优化,也正因如此,我们的活动上线能够做到1个月400+个。
  2. 性能压力和可靠性。3年多的时间里,因为上线活动的数目的暴增,带来流量以100倍速度增长。在这个过程中,最初的“简单架构”逐步演变为一个复杂的集群,我们也设计了诸多的保护策略和强大的监控体系,确保业务在平台上平稳运作。第一阶段,我们系统架构的改进方向是可扩展性,让每个类型的条件和发货服务,能够更自由和动态组合,以支持活动各不相同的需求。第二阶段,是因为前一个阶段支持了活动的动态扩展和组合,以至于活动接入数量和流量大增,逐渐增长到日请求量千万级别。这个阶段,我们架构升级的方向变为性能和可靠性,我们逐步升级原来的MySQL或者自研的存储服务为NoSQL存储(也是自研服务集群),解决单点服务,解决cache场景中的“空节点”等问题。第三个阶段,逐步设计应对秒杀场景的架构,过载保护,流量控制,部分服务异步化,业务降级保护策略等,达到支持日请求6亿+级别的高峰服务支持。
  3. 开放平台和安全保护策略建设。平台上的每一个活动通常都有自己的接口和服务,这些服务数以百计,而开放平台的建设则是约定通信的方式,让服务能够以填写配置的方式,以更高效的方式完成服务接入。活动中的礼包和奖品,通常价值都比较高,而这些高价值的东西总是吸引更多恶意用户的目光。因此,建设更高效的安全保护系统,也是非常重要的,我们除了采用传统的IP/账号的“黑名单”(通过数据分析等方式跑出来的恶意用户库)拦截策略外,我们通过和手机QQ终端的深度融合,在“黑名单”保护的基础上,增加了新的保护策略。

CSDN:通过您的博客,了解到您比较钟情于的编程语言是PHP?能否结合实践谈谈原因?另外,你还喜欢什么什么其它的语言?

徐汉彬:其实,我是一个多语言的使用者,我用过的开发语言有PHP、Java、C、JavaScript。不过,因为工作内容的原因,最多的当属PHP,而且,我也算是比较资深的PHP使用者(8年的PHP编程经验)。AMS采用PHP语言来实现,既有历史的原因,也有业务特性所致。活动运营业务,是一个逻辑复杂,需求非常多变,并且需要频繁扩展的业务,而PHP的简单性非常契合这个需求。如果采用C/C++来实现这频繁改动的业务,会增加不少的工作量,开发效率上会打一定的折扣。

PHP是一门比较容易熟练掌握的语言,它屏蔽了内存管理、指针,甚至变量类型等复杂的语言特性,让程序员的精力集中在业务实现上,这个也是它开发效率比较高的原因之一。不过,充分理解这些被PHP语言本身屏蔽的技术点,对于更好地使用PHP也是很有帮助的。一个大的项目是长期运作的,几年的时间里,参与的开发人员总会有变动,而PHP写的代码很容易被后来的新同学轻松接手,接手成本比C/C++实现的服务成本要低一些。而且,我对PHP7的后续发展,也充满期待。

JavaScript也是我很喜欢的语言,我在工作上也时常有使用。

CSDN:您作为技术人员,可否分享下学习新知识或技能的方法?

徐汉彬:每个人有各自的学习方法,并没有最优的方法,采用适合自己的就好。

我有一个学习的小建议,就是学习新技术的时候,多看看“官方文档”。

多年来的学习和工作经历,让我比较深刻认识到一点:看“官方文档”非常重要。我们很多的问题和技术细节,其实,只要我们认真将官方文档过一遍,会发觉大部分的问题和认识模糊的地方都消失了。甚至,你还能发现自己之前通过搜索获得的到一些资料,可能是不准确或者已经过时的。官方文档是真正的好东西,因为编写文档的人群,通常就是这些技术或者软件的开发者,他们才是对这些东西最了解的人,因此,他们写的文档质量是很高的,通常也是最新的。

官方文档的不足的地方,大概是中文版本不多,看起来可能会比较吃力。不过,请相信我,下载一个翻译辅助软件,慢慢看还是可以的。另一方面,就是这些文档编写者,通常是技术界大牛,他们编写文档有时候是基于他们自己的技术认知水平,跳过了很多基础概念,也增加了阅读难度。不过,这个我们也可以通过多查资料,慢慢看来解决,并且通常会带来额外的学习收获。

CSDN:在本次SDCC 2015大会上想分享的话题是?

徐汉彬:我分享的话题是:QQ会员活动运营平台的架构设计演变,会结合这个平台在过去3年多的时间里,业务规模和流量在百倍的增长过程中,我们遇到的挑战和问题,以及我们解决这个问题的过程。

CSDN:最期待在SDCC 2015大会上看到哪些内容?

徐汉彬:我希望看见关于Web方面的高并发和大流量方面的技术实践和应用,或者具有创新性质的其他技术内容。

专访腾讯徐汉彬:日请求高达3.5亿+平台的架构设计及演变相关推荐

  1. 徐汉彬:Web系统大规模并发——电商秒杀与抢购

    摘要:电商的秒杀和抢购,从技术的角度来说,会对Web系统产生巨大的考验.本期<问底>,徐汉彬将带大家关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原 ...

  2. 【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学

    摘要:缓存机制简单总结可以说是空间换时间,被用于提升系统交互的效率.而有趣的是,这种缓存机制令人惊奇并且优美的遵循着"几何分形"的规律,也就是几何分形学中的"自相似性&q ...

  3. 【问底】徐汉彬:PHP7和HHVM的性能之争

    本文来源于:  http://www.csdn.net/article/2014-12-25/2823234 [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升 ...

  4. 【转载】徐汉彬:PHP7和HHVM的性能之争

    摘要:近日,PHP7和HHVM的性能之争成为了一个讨论热点,但毫无疑问,它们都在提升PHP执行性能方面取得了突破性的进展.本期<问底>,徐汉彬将为大家科普和介绍它们的性能之争. [导读]徐 ...

  5. 高性能零售IT系统的建设06-当应对大量HTTP请求时兼顾性能、处理速度的架构设计

    前言 这个系列不像我的那些个"保姆式"教程,那些保姆式教程我一周最多可以写8篇,因为太简单了.充其量花的时间就是用"看漫画"的方式去组织我的截图和尽量少文字多S ...

  6. 徐汉彬:亿级Web系统搭建—单机到分布式集群

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...

  7. 腾讯三面:说说前端监控平台/监控SDK的架构设计和难点亮点?

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 前言 事情是这样的,上周,我的一位两年前端经验的发小,在 腾讯三轮面试 的时候被问了一个问题:说说你们公司前端监控项目的架构设计和亮点设计 ...

  8. FAF世链区块链大会|启元社社长徐道彬: 创新价值成为区块链真正的牵引力

    2021年8月7日,由世链财经.FAF主办,世链矿业.斯塔克科技.世链投研.世链资本.丰收资本联合主办,CSLA.DHD冠名的"FAF世链区块链大会"在深圳隆重开启.世链财经记者有 ...

  9. 腾讯在汉投资10亿 建设华中地区最大研发中心

    2012年08月28日02:04长江商报 常燕 陈晴 昨日上午,腾讯无线互联网技术研发总部在汉正式动工,项目一期投资10亿,用地总面积5.6平方公里,预计2014年建成投入使用. 一向十分低调.甚少出 ...

最新文章

  1. 2022-2028年中国乙烷行业投资分析及前景预测报告
  2. 2020人工神经网络第一次作业-参考答案第五部分
  3. Java 进阶 ——2019 计划要读的书
  4. 通过js让页面中的元素上下居中的写法
  5. 如何利用navicat可视化软件添加与新建mysql数据库
  6. MySQL日期处理-查询间隔数据
  7. 【李宏毅2020 ML/DL】P67-72 Anomaly Detection
  8. 学习的四重境界,给上初中侄女,如何学习,如何定义社会人才
  9. windows c语言 sata 序列号,【Delphi】获取IDE/SATA硬盘序列号
  10. html5好看的注册页面设计,美观大气注册登录页面模板html源码
  11. 基于Hive的淘宝用户行为数据分析
  12. C# NPOI 导出Excel 小数位数控制
  13. 985计算机硕士考公,985大学生不愿意考公务员?并不是瞧不起,真实原因有点扎心...
  14. 银行的SWIFT CODE 和 IBAN CODE 和 ABA CODE 分别是什么意思
  15. java基础_设计模式_设计基础(小鸭子游戏)
  16. java为什么计算时间从1970年1月1日开始
  17. Elasticsearch 6 Mapping设置
  18. c++ 45行代码实现 生命游戏-细胞自动机!!!
  19. GPO:部署 ADMX/ADML Template
  20. python open_python open() – 访问被拒绝

热门文章

  1. 网课助手浏览器版怎么更新_MIUI版本更新动态:跨屏协作来袭(第57期)
  2. android自动填充包名,debug/release 修改包名,取不同包名下的agconnect-services.json 文件...
  3. carplay是否可以用安卓系统_是否可以仅用键盘来操作Windows 10系统和Windows 10应用?...
  4. flask的同一ip域名不同端口的两个网站session冲突
  5. Linux环境下使用dosemu写汇编
  6. opencv orb
  7. python super 变参数问题(五)
  8. 二级list列表python_Python 基本语法(二) —— 列表 (list)
  9. 一致性哈希算法的基本原理
  10. R语言实战应用精讲50篇(三)-多重线性回归系列之模型评估与诊断应用案例