淘宝在“双十一”得到了空前的反响,当然在“双十一”背后,OceanBase分布式系统负载均衡也帮了不少的忙,以下就是其经验分享。
云计算已经是现在大势所趋,它所具备的低成本、高性能、高可用性、高可扩展性等特点与互联网应用日益面临的挑战不谋而合,成为近年来互联网领域的热门话题。当然在云计算的底层架构中,分布式存储是不可或缺的重要组成部分。就像国外知名的互联网公司Google、Amazon、Facebook、Microsoft、Yahoo等都竞相推出了各自的分布式存储系统,而在国内淘宝也自主研发的一个支持海量数据的高性能分布式数据库系统OceanBase,实现了数千亿条记录、数百TB数据上的跨行跨表事务。
在分布式系统中存在着著名的“短板理论”,一个集群如果出现了负载不均衡问题,那么负载最大的机器往往将成为影响系统整体表现的瓶颈和短板。为了避免这种情况的发生,需要动态负载均衡机制,以达到实时的最大化资源利用率,从而提升系统整体的吞吐。
本文将结合OceanBase的实际应用和大家分享一个去年淘宝双十一前期的准备工作中遇到负载均衡相关案例,抛砖引玉,期望对大家的工作有所启发。
OceanBase架构介绍
OceanBase是一个具有自治功能的分布式存储系统,由中心节点RootServer、静态数据节点ChunkServer、动态数据节点UpdateServer以及数据合并节点MergeServer四个Server构成,如图1所示。
图1 OceanBase 架构图
Tablet:分片数据,最基本的存储单元,一般会存储多份,一个Table由多个tablet构成;
RootServer:负责集群机器的管理、Tablet定位、数据负载均衡、Schema等元数据管理等。
UpdateServer:负责存储动态更新数据,存储介质为内存和SSD,对外提供写服务;
ChunkServer:负责存储静态Tablet数据,存储介质为普通磁盘或者SSD。
MergeServer:负责对查询中涉及多个Tablet数据进行合并,对外提供读服务;
在一个集群中,Tablet的多个副本分别存储在不同的ChunkServer,每个ChunkServer负责一部分Tablet分片数据,MergeServer和ChunkServer一般会一起部署。