京东资深架构师张成远:京东分布式数据库是如何炼成的?
创始人
2025-01-28 16:50:45
0

作为国内***梯队的电商企业,京东拥有亿万用户,每天要应对数以千百万计的访问需求,在其架构和管理方面有何妙招来对数据加以支撑呢?在会上,51TO记者采访了京东资深架构师张成远。

[[165464]]

张成远,《Mariadb原理与实现》作者,开源项目speedy作者。目前就职于京东数据库系统研发团队,负责京东分布式数据库系统架构与研发工作,主导了京东分布式数据库系统在公司的落地及大规模推广。擅长高性能服务器开发,擅长分布式数据库/存储/缓存等大规模分布式系统架构。

分布式数据库的技术核心

京东每天面对海量的数据处理采用的是分布式数据库的系统,其核心技术及思路又是怎样的呢?

张成远表示,京东分布式数据库的关键是引入中间件的方式来提供对数据的拆分,解决了业务上单机扛不住数据量的问题。对于业务来说,在单机扛不住的情况下还要自己去关注数据,这样它的负担会非常重,所以京东采用了分布式数据库的方案,让业务可以比较方便的使用。京东会进入MySQL的协议,提供代理的方式,把整个集群管理好,业务接入时只需要用原生的MySQL客户端来使用就可以,所以对于业务的使用负担会非常的轻。同时京东也有非常完善的监控,所以能够保证业务接入以后系统的稳定和可靠。

数据库的设计架构

京东对容量非常的重视。在前期设计过程中,需要针对业务进行未来一到两年甚至两到三年的容量预估,来进行合理的资源配置。以及考虑到未来扩容的需求,京东可以实现在业务增长的情况下自动化扩容。

京东在发展过程中,早期的一些业务可能放在Oracle里面,也有一些数据量较小的业务是放在MySQL里面。简单说,因为单机的数据量放不下,如果采用分布式数据库我们能够把它的数据进行拆分,相当于可以获取到一个容量比原来大很多的数据库。

分布式数据库可以存放所有的关系型存储数据,并且还可以支撑京东非常多的核心系统。例如订单、商品、物流还有财务等等。

数据的可靠性

但是在这个过程中,数据的可靠性又是如何保障的呢?

张成远表示数据的可靠性有两点,一是服务本身是高可用的,二是数据本身是高可靠的。

比如说MySQL层面,我们通过主层,分布式数据库中间件层面,因为我们本身是无状态的,所以可以部署多份,来解决高可用的问题。关于数据本身高可靠的问题,我们会对数据库里面的数据定期进行备份,所以哪怕有误操作或者其他任何问题,都可以完整的恢复回来。

分布式事物的难点

在实现整个分布式数据库的系统的过程中也不可避免面临一些困难,比如分布式节点相关,京东团队又是如何解决的呢?分布式事物相关最难的问题在于事物的原子性很难保证,一个访问可能涉及多个节点,并且每个节点可能都有问题。尤其是基于MySQL层面做分布式数据库,因为每个节点事物的ID不一样,但如果基于存储的不是MySQL而是其他层面,相对来说会有类似两阶段提交的协议可以参考,从而解决问题。

很多人会关心到分布式数据库能否保证数据的一致性,张成远认为这不是一致性的问题,而是关系到的分布式事物的原子性的问题。从本质上说如果事物涉及到多个节点,并且节点异常,为满足业务的需求会引入相关系统,可以把丢失的东西补回来。还有一种方法,就是在使用上和业务沟通,将相关的事务进行拆解。拆分后,每次的访问之落在一个分部或者节点上,如此一来可以保证每次的访问要么成功要么失败,可以很巧妙的从另一个方式绕过这个问题,用来保证原子性。

采访***

国内不乏综合型电商平台,而京东却是中国***的自营式电商企业,是中国***个成功赴美上市的大型综合性电商平台,同时与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜,京东的成功与其有着优秀的数据库管理是密不可分的。

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...