设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

【运维专家大讲堂】腾讯资深运维专家周小军:QQ与微信架构的惊天

发布时间:2021-01-05 11:47 所属栏目:53 来源:网络整理
导读:《【运维专家大讲堂】腾讯资深运维专家周小军:QQ与微信架构的惊天秘密》要点: 本文介绍了【运维专家大讲堂】腾讯资深运维专家周小军:QQ与微信架构的惊天秘密,希望对您有用。如果有疑问,可以联系我们。 社交领域一直是互联网创业的大热门,从PC到移动端,

《【运维专家大讲堂】腾讯资深运维专家周小军:QQ与微信架构的惊天秘密》要点:
本文介绍了【运维专家大讲堂】腾讯资深运维专家周小军:QQ与微信架构的惊天秘密,希望对您有用。如果有疑问,可以联系我们。

社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ.到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期.腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心资深数据运维专家周小军的专访.本期访谈将从运维的视角,为我们揭晓腾讯社交产品前端到后端的故事.

Q1:?您好,很高兴有机会采访到您,我了解到您,您在天涯腾讯拥有非常丰富的运维工作经验了,能否介绍下自己?分享下自己工作中的苦与乐?

A1:?我叫周小军,目前就职于腾讯社交网络平台技术运营中心,负责社交产品分布式存储的运维及团队管理工作.

我在运维领域工作了十多年,算是一个运维老兵.刚毕业时我进入国寿当系统管理员,负责系统和业务运维,也做过业务系统开发.较早接触了SCO Unix操作系统和Informix数据库,还做了一些业务系统开发.后来感觉在国企没有技术,没技术挑战,技术部门也不是国企的核心,于是工作一段时间后离开了国寿.

到了2002年,我进入天涯社区,主要负责网站运维.在天涯的职业生涯中,我从运维主管做到了云计算副总监,在此期间组建起了一支精锐的运维队伍,包括系统、网络、数据库、安全和运维开发等运维小团队.

随着越来越多的网友涌向天涯社区,天涯流量开始突飞猛进了,我不断推进网站的架构演进,从初始的二层架构发展到包括GSLB、LVS、Haproxy、Squid、应用WEB、数据缓存及数据库等多层可扩展的架构,从ASP/MSSQL/Windows平台迁移到JSP/MySQL/Linux开源平台,从脚本化运维进化到了工具化运维,我们建设了一套包括资源管理、监控、告警、配置管理、自动部署等服务在内的运维管理系统,探索了虚拟化技术的实践,保证了天涯从最初的日百万PV演进到日亿级PV架构.

有句话说得好,叫摸着石头过河.在天涯十多年的运维工作中,我们也踩到了许多大坑:比如被几倍出口的DDOS打了几小时、服务器被入侵、域名被劫持、数据中心断电、天涯拖库、谷歌出走等大事件,还有许多员工犯下的人为致命错误.回过头来看,当初踩坑多了,心理反倒变得极其强大,遇到大故障已如钢丝一般冷静,在反思总结教训的基础上不断提升自己的运维能力.

回顾我在天涯的时光里,遇到技术上最大的困难是双平台并运行的问题,天涯从Windows迁移到Linux过程中,由于架构复杂、产品繁多、技术资源投入不足,整个迁移过程持续了数年.在这个过程中,运维团队不得不在双平台上投入大量精力,比如开发运维工具要在Linux写一套Python,在Windows上写一套C#,运维精力很难兼顾.现在反思,有几点经验,希望做运维的伙伴们能够共勉,做系统重构时必须要有坚定的目标,强有力的一把手决策,投入精兵强将小分队,正确的说服老板,敢于血战,经受短时间的剧烈阵痛.

2012年我进入腾讯负责社交产品分布式存储运维,这里是亚洲最大的分布式存储集群,上万台内存和磁盘存储服务器分布在全国几个区域的存储仓库内.每秒有几千万的数据读写请求,服务于QQ、空间、腾讯云、相册和广点通等海量业务.

与此同时,腾讯业务的海量数据给我们运维人员带来了很大的挑战,这些挑战都是我们未曾经历过的.我们不断采用创新性的方法来解决这些难题,在存储运维上开辟新的思路,不断从效率、成本、质量和安全四个维度力求做得更专更精,不断追求更卓越,非常给力地支持了业务的高速发展.

Q2: 腾讯在过去的几年里,社交平台火到爆,QQ和微信都已经拥有了几亿的粉丝,那么如何应对QQ空间海量用户上传图片、上传视频、上传文字等高并发负载?

A2: 针对文字、图片和视频的不同应用场景,我们提供了不同的存储解决方案.其中有面向数据的NoSQL分布式存储和关系数据库,也有面向图片的图片存储平台,还有面向视频的文件存储平台.

不同的存储系统各有特点,NoSQL存储注重高性能、低延迟和高可用,图片和文件存储量更注重低成本和数据安全.

腾讯NoSQL存储由腾讯内部研发团队开发,现在有基于内存和SSD二级存储的CKV(Cloud Key-Value)、Grocery和Quorum_KV,有基于SSD存储介质的TSSD等.

CKV主要服务于空间、相册、腾讯云等互联网业务,Grocery主要服务于QQ即通业务,Quorum_KV主要服务于微信消息业务.

经过精心设计的存储单机性能可以达到每秒十几万次的读写,完全可以应对高并发负载.比如CKV的内存存储采取了以下的设计思想以支持高并发能力:
1)内核态网络处理模块,以内核模块形式提供服务;
2)大量运用zero-copy思想,在数据传递,编解码时基本达到理论上的最少次数;
3)快速hash;
4)内存快速分配;
5)多队列网卡;
6)处理器绑定;
7)自旋锁;
8)存储主机无磁盘IO的设计,备机才落流水和内存镜像到磁盘.

Q3: 八年前,腾讯就开始在社交产品中应用到了NoSQL数据库了,大家可以通过微信朋友圈或者QQ空间轻松自由地分享视频、文字、音频、图片等,那么微信与QQ在架构上究竟有哪些相似点与不同点呢?
A3: 微信使用的NoSQL存储名称为Quorum_KV,是基于LSMTree研发的强一致性、持久化KV分布式存储,支持key-table 和 string-value两种存储模型.

Quorum_KV通过Quorum协议实现双向可写功能,一个最小的存储单元由二台存储机和一台仲裁机组成,写存储机时经过仲裁决定被写的机器.

写数据时直接写内存的Memtable表.Memtable写满后转换成Immutable.Immutable定期Dump到本地磁盘变成数据文件,数据文件不断递增形成不同level级别数据文件,不同level级别的数据文件会定期合并.

内存表使用Skiplist来做内存的Key索引.
读数据时先读内存表,如果找不到记录再寻找Immutable,然后是level 0磁盘文件、level 1……直至寻找到记录返回结果.所以可以看到,Quorum_KV的设计是面向写量大,读量小的业务场景,很好地适应了微信消息写量大的特点.

再来谈谈QQ,它使用的NoSQL存储名称为Grocery,属于最终一致性,持久化KV分布式存储,支持Key-value和Key-key-Row数据结构.
一个最小的存储单元由二台或多台存储主、备组成,主备可组成一主多备的链状结构.数据写入主后同步到备.客户端可同时读取主备,因此读到备的客户端会有一定的数据延迟,适合对数据一致性要求不高的业务.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读