淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

news2024/11/14 9:08:43

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

文章目录

  • 淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。
    • 本文导读
    • 1.分库分表
    • 2.数据冗余
    • 3.异步复制
    • 4.读写分离
    • 总结

本文导读

淘宝的数据库架构设计采用了分布式数据库技术,通过分库分表、数据冗余、异步复制、读写分离等技术手段来解决数据库的性能、可用性和扩展性问题。

1.分库分表

​ 分库分表是将数据分散存储在多个数据库和表中,以提高数据库并发性能和扩展性的技术。淘宝采用了基于业务的分库分表架构,将每个商品的信息存储在不同的数据库中,每个数据库再细分为多个表,每个表存储某个商品的某个信息。这样可以避免单个数据库或表的容量限制,同时也方便水平扩展。但是,分库分表后,跨库查询和事务处理会变得复杂,所以需要使用中间件来协调分片之间的操作。

淘宝采用了TDDL(Taobao Distributed Data Layer)作为分库分表的中间件。TDDL是一种分布式数据库访问层,它负责将用户请求路由到相应的数据库分片上,协调事务、缓存和分片操作,以保证数据一致性和高性能。TDDL采用了类似于Mysql Proxy的架构,通过动态拦截和修改JDBC API调用来实现数据库访问和控制。

2bbcdd7443819968713d5835fc29a95b.png

2.数据冗余

​ 数据冗余就是将同一份数据存储在多个地方,以提高数据的可用性和容错能力的技术。淘宝的主数据库会实时同步到多个备份数据库中,一旦主数据库出现故障,备份数据库会自动接管工作。同时,淘宝还使用了多副本存储技术,将数据存储在多个节点上,保证了数据的高可用性。

淘宝采用了Mycat(MySQL Cluster Autonomic Tuning)作为数据冗余的中间件。Mycat是一种分布式数据库中间件,它提供了数据分片、数据冗余、读写分离、动态路由、故障切换等功能,可以在多台MySQL服务器之间分配和复制数据,提高数据库的可用性和容错能力。

img

3.异步复制

​ 异步复制就是将主数据库中的数据异步复制到从数据库中,以提高数据库的读性能和可用性的技术。淘宝的主数据库会定期将数据同步到从数据库,保证从数据库的数据与主数据库同步。

淘宝采用了Canal作为异步复制的中间件。Canal是一种基于MySQL数据库日志增量订阅

Canal是一种基于MySQL数据库日志增量订阅和消费的中间件,它可以将MySQL的数据变更实时地转发到消息队列或者其他存储系统中。淘宝通过Canal将主数据库的数据变更实时地同步到从数据库中,以提高从数据库的读性能和可用性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kpFE729E-1678329545540)(null)]

4.读写分离

​ 读写分离就是将读操作和写操作分别路由到不同的数据库服务器上,以提高数据库的读性能和可用性的技术。淘宝的主数据库处理写操作,从数据库处理读操作,以减轻主数据库的负担,同时提高从数据库的读性能。

淘宝采用了Alibaba Cobar作为读写分离的中间件。Cobar是一种轻量级的分布式数据库中间件,它可以实现数据库的读写分离、负载均衡和故障切换等功能。Cobar通过多个节点之间的协作,使得整个分布式系统具有高可用性和高性能。

img

总结

​ 综上所述,淘宝的数据库架构设计采用了分布式数据库技术,通过分库分表、数据冗余、异步复制、读写分离等技术手段来解决数据库的性能、可用性和扩展性问题。同时,淘宝还采用了一系列中间件来协调分布式系统的操作,保证了数据的一致性和高性能。这些技术手段的综合应用,使得淘宝的数据库能够承受双十一这种高并发、高压力的交易活动。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MES系统消除制造型企业的九大浪费!

在生产制造型企业,正确地减少不必要的浪费才是降低生产成本、提升企业利润的关键! 许多制造型企业的管理者,尤其是中层管理者没有认识到在生产管理过程中哪些行为是在真正提升企业效益、哪些行为是给企业制造浪费。 对于传统的浪费有过量生…

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统 项目源码:https://github.com/Pistachiout/Academic-Degree-BlockChain 一、选题背景 学历造假、认证造假等是一个全球日益普遍的现象,不仅对社会产生了巨大的负面影响,同时也极大增加了企业…

极限的准则

目录 定理: 极限运算法则: 极限存在之间的计算: 例题: 定理: 定理: 定理1和定理2的证明方式类似,我们对定理2进行证明。 我们举一个例子: 这道题目的结果是0,但是计算…

excel 数据查询,几个模式化公式请收好

1、一对多查询 所谓一对多,就是符合某个指定条件的有多个结果,要把这些结果都提取出来。 如下图所示,希望根据F2单元格中指定的部门,提取出左侧列表中“生产部”的所有人员姓名。 Excel 2019及以下版本:在H2单元格输…

【教学典型案例】17.环境混用带来的影响

目录一:背景介绍二:思路&方案思路方案1、分权2、定期对比环境混乱的危害三:过程1、排查nginx请求转发是否正常2、找到开发环境项目的服务器,查看服务器配置的nginx3、从fastdfs服务器上找到安装存储的位置4、排查结果四&#…

Java代码优化|提高代码质量的一些小技巧

1.需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。正例…

python进程间通信

进程间通信表示进程之间的数据交换。 为了开发并行应用程序,需要在进程间交换数据。 下图显示了多个子过程之间同步的各种通信机制 - 各种通信机制 队列 队列可以用于多进程程序。 多处理模块的Queue类与Queue.Queue类相似。 因此,可以使用相同的API…

【带你搞定第二、三、四层交换机】

​ 01 第二层交换机 OSI参考模型的第二层叫做数据链路层,第二层交换机通过链路层中的MAC地址实现不同端口间的数据交换。 第二层交换机主要功能,就包括物理编址、错误校验、帧序列以及数据流控制。 因为这是最基本的交换技术产品,目前桌面…

07-PL/SQL基础(if语句,case语句,循环语句)

本章主要内容: 1.PL/SQL的基本构成:declare,begin,exception,end; 2.结构控制语句:IF语句,CASE语句 3.循环结构:loop循环,for loop循环,while loop循环 PL/SQL的基本构成 特点 PL/SQL语言是SQL语言的扩展&#xff…

JS学习笔记day03

今日内容 零、 复习昨日 CSS 美化,复用,样式文件和表现文件分离便于维护 选择器 {属性:值;…} 引入css 内联文件内部使用style标签外部文件 <link href"路径" rel"stylesheet" type"text/css"> 选择器 基本 idclass标签名 属性 标签名…

【并发编程】深入理解Java内存模型及相关面试题

文章目录优秀引用1、引入2、概述3、JMM内存模型的实现3.1、简介3.2、原子性3.3、可见性3.4、有序性4、相关面试题4.1、你知道什么是Java内存模型JMM吗&#xff1f;4.2、JMM和volatile他们两个之间的关系是什么&#xff1f;4.3、JMM有哪些特性/能说说JMM的三大特性吗&#xff1f…

从新手小白到运维大咖,SysOM 多场景宕机实例解析 | 龙蜥技术

文/刘馨蔚&#xff0c;系统运维 SIG Contributor “老板老板&#xff0c;今天业务又发生了抖动&#xff0c;具体原因暂时还不能快速查清&#xff0c;再给我点时间吧。” “老板老板&#xff0c;这个问题我好像解过&#xff0c;但是也不太确定&#xff0c;我再重新分析一次吧。…

Django/Vue实现在线考试系统-05-开发环境搭建-PyCharm安装

1.0 PyCharm下载和安装 PyCharm 是 JetBrains 公司(www.jetbrains.com)研发,用于开发 Python 的 IDE 开发工具。图 1 所示为 JetBrains 公司开发的多款开发工具,其中很多工具都好评如潮,这些工具可以编写 Python、C/C++、C#、DSL、Go、Groovy、Java、JavaScript、Objecti…

关于kafka,你背了哪些面试题(持续更新中)

昨天面试大数据开发岗位&#xff0c;面试官问了一个开放性的问题&#xff0c;讲讲你对kafka的认识&#xff0c;一下有些懵住&#xff0c;不知道从哪里开始谈起。 今天和另外一个大佬聊天&#xff0c;他告诉我&#xff0c;就是要背面试题&#xff0c;背面试题是一种有效的学习方…

如何把iPhone照片导入电脑?图文教学,1分钟教你快速导入

​在日常生活中&#xff0c;我们经常会用iPhone拍摄照片&#xff0c;但是iPhone的存储空间有限&#xff0c;随着照片的增加&#xff0c;存储空间会越来越少。因此&#xff0c;把iPhone照片导入电脑成为了很多人需要解决的问题。那么&#xff0c;如何把iPhone照片导入电脑呢&…

Linux上安装配置ZooKeeper

Linux上安装配置ZooKeeper 下载压缩文件 将压缩文件拷贝到指定目录下 执行命令 tar -zxvf [apache-zookeeper-3.5.7-bin.tar.gz] -C [/opt/module/]注&#xff1a;第一个括号里面是压缩文件名称&#xff0c;第二个括号里面是解压到指定的目录 进入到解压后的文件夹当中&am…

KDHG-A变频互感器综合测试仪

一、概述 KDHG-A电流互感器现场综合测试仪是一种专门为测试互感器&#xff1a;伏安特性、变比、极性、误差曲线、计算拐点和二次侧回路检查等设计的多功能现场试验仪器。 二、主要特点 1&#xff0e;单机220V输入时最大电压输出0-2500V&#xff0c;单机最大电流输出0-1000A&am…

我的同事用PicSo AI这款绘画软件,连夜生成了100个“女朋友”

最近的AI绘画实在是太火爆了&#xff01; 有人用它来生成商业插画&#xff0c;有人用它来测试AI的智商&#xff0c;有人用它来为小说生成配图&#xff0c;有人在它的作品中寻找灵感… 而我的同事&#xff0c;用AI软件给自己画了将近100个漂亮的女朋友&#xff01; 而这款令…

美颜SDK关键技术讲解——人脸识别与人脸美化

拍摄&#xff0c;自从智能手机普及之后就已经不再是小众爱好&#xff0c;使用手机拍摄记录生活几乎成了人们的日常。在巨量的需求下&#xff0c;美颜工具、美颜SDK已经被广泛应用于各大视频拍摄平台。虽然经常听到美颜SDK&#xff0c;但是大多数人并不了解它&#xff0c;下文小…

【量化交易笔记】4.移动平均值的实现

上一讲已经讲A股的数据下载到本地或保存数据库&#xff0c;我们可以随时使用。 移动平均MA(Moving Average) &#xff0c;是用统计分析的方法&#xff0c;将一定时期内的证券价格&#xff08;指数&#xff09;加以平均&#xff0c;并把不同时间的平均值连接起来&#xff0c;形成…