QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

ArchSummit 讲师专访:腾讯微博张松国谈腾讯微博的架构成长过程

2012 年 7 月 11 日

编者按:由 InfoQ 主办的全球架构师峰会将于2012 年8 月10 日-12 日在深圳举行,为了更好地诠释架构的意义、方法和实践,InfoQ 中文站近期会集中发布一批与架构相关的文章,本篇即为其中之一。InfoQ 也欢迎读者亲身参与到本次全球架构师峰会中,与来自国内外的顶尖架构师进行面对面的交流。报名参会请点击这里

张松国,现任腾讯微博事业部技术总监,负责腾讯微博技术工作。曾任腾讯系统架构部架构师和腾讯网技术总监。主要工作领域:互联网海量系统技术架构设计和系统运营,互联网产品设计。他在ArchSummit 分享的主题为“腾讯微博架构的成长过程”,主要内容是:腾讯微博业务高速发展,2 年发展4 亿用户,同时对服务质量的要求比以往业务更高,对技术架构形成巨大压力。本次演讲分享腾讯微博的技术架构,讲解如何应对海量业务的高速发展和高服务质量挑战。

InfoQ:能否介绍下您自己,还有您在架构方面的工作经验?

张松国:2005 年进入腾讯,先后从事腾讯网建设,以及腾讯微博建设。主要架构经验:互联网海量用户网站应用的架构设计,运维系统架构设计等等。

InfoQ:腾讯云平台事业部总经理陈磊说:腾讯内部的系统架构都是以持续运营方式在不断演进的,请问腾讯微博在“持续运营”方面是如何做到的?

张松国:微博的架构从诞生起就在不断快速演进,每周都会有更新上线。体现在这几个方面:功能方面持续优化和增加;用户体验方面不断改进优化;用户高速增长,因此存储,性能要随之改变和调整,还有系统可靠性也是一个长期逐步完善的过程。这些优化需求的来源是公司内部、产品策划、用户反馈、数据监控等等。

InfoQ:回头看看腾讯微博架构的发展,是不是存在一些关键的时间点?为什么是这些时间点?

张松国:从架构上看,演进大概可以分成这几个阶段: 1. 10 年 5 月前,功能实现阶段,这个阶段主要是实现功能和一些基本的安全设施,达到系统上线的基本要求。 2. 10 年 5 月到 11 年 6 月 性能调优阶段。这段时间主要对用户体验性能进行调优。以及实现容错能力。还有就是用户高速增长,系统也进行局部重构来支撑规模的增长。 3. 11 年 6 月后容灾系统搭建。这个阶段开始有时间对系统的稳定性进行专项改进。主要是实现多 IDC、异地容灾能力。以及优化架构,提高开发效率,和加强数据挖掘。

InfoQ:在一开始做架构选型时,您觉得当时哪些决策现在看是正确的,哪些存在问题?为什么?

张松国:由于有腾讯其它系统的设计经验,微博一开始起点较高,基本架构设计到现在没有大的改动。好的地方有:1 参考了其它系统架构经验以及应用了公司和业界的成熟的组件和系统;2 上线后快速的性能调优赢取了不错的体验和口碑;3 对容灾容错的重视,到现在腾讯微博可以说是业界最稳定的微博系统。 有些方面可以改进:刚开始的架构在协议设计和耦合设计方面对开发效率的支持不够好,开发效率略低,到 11 年底才开始改进;对业界成熟开源系统的应用方面还可以加强一些。

InfoQ:在存在人员规模和架构复杂度增加这样的矛盾时,腾讯微博是怎么做的?

张松国:微博上线后,很快成长为一个庞大的系统。2 年内增长到 4 亿用户,同时功能也快速增加。对系统架构挑战很大,需要架构的不断演进来支撑变化。另外腾讯微博采用一些架构方法减缓矛盾:1. 采用可平行扩容的设计,尽量减少因为用户规模增长带来的架构变化。2. 采用平台化设计和消息中转系统进行系统解耦,解决系统复杂性问题。3. 应用成熟的组件和公司内部系统,可以提高开发效率和运营质量。

InfoQ:腾讯微博现在使用的后台数据库,是腾讯自行研发的 NoSQL 数据库么?相对于业界其他 NoSQL 数据库,有哪些特点?

张松国:微博使用的后台数据库主要两大类,一是自研的 NoSQL 数据库,二是集中托管的 MySQL。消息和索引是存在 NoSQL 数据库上的。微博自研的数据库最大特点是基于 SSD 设计。因为微博数据小,而读量又很大,所以比较适合 SSD 存储。另外它是一个自动容灾的多 IDC 分布数据库。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012 年 7 月 11 日 00:002470
用户头像

发布了 479 篇内容, 共 127.0 次阅读, 收获喜欢 30 次。

关注

评论

发布
暂无评论
发现更多内容

让核显大展拳脚:Intel Iris Xe显卡

intel001

WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器

JackJiang

html5 网络编程 websocket 即时通讯

杂谈:一文了解工业4.0

soolaugust

工业互联网 工业4.0

在网上被MG坑审过却一直延迟无法取出到账怎么解决 (LGF微7998)

Geek_db0f9e

1分钟带你入门React Context

Leo

前端 React useContext Context 前端进阶训练营

视频面试跟传统面试的区别及优点

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

1分钟带你入门Redux、React-Redux

Leo

前端 React 前端进阶训练营 Redux React-Redux

BIGDATA+AI Meetup 2020第二季·上海站开启报名!

Apache Flink

大数据 AI

【运维思考】运维对象快速扩展,监控如何精准实时的覆盖?

嘉为蓝鲸

PaaS 运维自动化 监控管理平台 监控系统 监控告警

技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式

华为云开发者社区

数据 数据迁移 原数据

原来AI也可以如此简单!教你从0到1开发开源知识问答机器人

华为云开发者社区

开源 AI 机器人

1分钟带你入门 Redux 中间件

Leo

前端 中间件 前端进阶训练营 Redux Redux中间件

Storage API简介和存储限制与逐出策略

程序那些事

浏览器 web tech web storage storage api 前端存储

vivo 基于原生 RabbitMQ 的高可用架构实践

vivo互联网技术

高可用 RabbitMQ 中间件

spring-boot-route(二十一)quartz实现动态定时任务

Java旅途

Java Spring Boot quartz

【活动预告】2020中国系统架构师大会:即构受邀分享实时音视频服务架构实践

ZEGO即构

架构师 高并发系统设计 技术分享

iOS 性能优化实践:头条抖音如何实现 OOM 崩溃率下降50%+

iOSer

性能优化 OOM ios开发 头条抖音 OOM崩溃

区块链跨境支付系统开发,OTC承兑商支付平台搭建

WX13823153201

区块链跨境支付系统开发

最火的HTAP数据库 京东智联云新一代分布式数据库TiDB架构揭秘

京东科技开发者

数据库 #TiDB

Java程序员想要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。

Java架构之路

Java 程序员 架构 编程语言 随笔杂谈

区块链交易所开发源码案例,区块链数字货币交易所

135深圳3055源中瑞8032

连续一个月每天加班到凌晨三点,终于把Java程序员必知必会的计算机底层操作系统知识和网络知识整理出来了,已整理成文档!

Java架构之路

Java 程序员 架构 编程语言 操作系统

一套完整的后台管理系统(附源码),非常实用!

程序员生活志

管理系统

身为程序员你们经历过大厂面试吗?本文为大家解决大厂必问的MySQL调优问题

Java架构师迁哥

独家!阿里技术人限产的MySQL高级笔记及面试宝典,简直开挂

996小迁

Java MySQL 架构 面试 技术宅

LeetCode题解:98. 验证二叉搜索树,递归中序遍历完成后再判断,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

USDT承兑商平台源码开发,USDT支付系统

135深圳3055源中瑞8032

区块链钱包源码开发,深圳数字货币钱包开发

135深圳3055源中瑞8032

十九、深入Python匿名函数

刘润森

Python

MySQL-技术专题-MySQL的主从同步

李浩宇/Alex

合约跟单源码,合约跟单模式系统软件开发

135深圳3055源中瑞8032

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

ArchSummit讲师专访:腾讯微博张松国谈腾讯微博的架构成长过程-InfoQ