本篇文章2178字,读完约5分钟

京东的分布式数据库如何应对大型推广活动 在12月20日至22日举行的第11届中国国际数据中心行业年会上,JD.com资深建筑师张承圆详细讨论了JD.com分布式数据库应如何应对推广活动。 边肖:安海燕 在12月20日和22日举行的第11届中国国际数据中心行业年会上,JD.com资深建筑师张承圆详细讨论了JD.com分布式数据库应如何应对推广活动。

京东的分布式数据库如何应对大型推广活动

京东高级建筑师张承圆

首先,让我们看看什么是分布式数据库,以及在分布式数据库中需要使用什么场景。分布式数据库是分布式的。它支持SQL,是多节点存储。这种存储方式可以分担原有单机数据库的压力。

事实上,数据库是计算机领域最早也是最成熟的分支。七十年代,关系理论开始被提出,出现了许多SQL产品,如我的SQL和SQLSERVER。这些数据库被广泛使用。慢慢地,随着整个互联网的发展和数据量的增加,在许多企业中出现了一些情况。例如,单机数据库不能支持业务量。由于数据量大,单台机器上的压力会很大,查询也会减少。另一个原因是,像甲骨文这样的互联网公司都专注于降低成本,将删除这些数据库,并使用免费的MySQL,这也需要相应的分布式数据库来解决存储问题。

京东的分布式数据库如何应对大型推广活动

为了应对这一巨大的推动,基础系统和业务系统都是相同的,并且有两个重要的步骤要采取:第一,早期阶段的准备应该非常充分和完善;第二,在推广期间,要做大量的准备工作,以便在推广开始后,有更多的时间用于准备工作。

京东的解决方案基于一套分布式数据库专用中间件。后台存储中会有很多MySQL,因为中间件是金融MySQL,用户使用它时没有意识到,就像MySQL一样。

JManager管理路由信息。如果单独维护每个路由信息,成本将非常高。因此,京东的路由信息是集中管理的,可以在这里直接提取。还有JTrasnfer系统。系统可能不确定数据量。如果希望在后期更改为四个或八个数据集,它会将一些原始数据迁移到新的集群,这样整个集群的数据将变得更大,这相当于整个集群的大小。这样它就能够支持大量的数据,包括支持压力和支持能力。接下来是JMonitor。当系统在网上正式使用时,除了核心的基本功能和性能满意度之外,最重要的一点是监控。特别是当支持的系统是一个非常关键的系统时,如果找不到任何异常情况,可能会导致大问题。

京东的分布式数据库如何应对大型推广活动

从去年到今年,JD.com已经移除了大部分甲骨文,只留下少数几个。因此,它对甲骨文进入系统的一些工作做了一些小的调整,使它对用户来说看起来像普通的MySQL,但实际上它使用了规则的限制,要求它的SQL,像分布式缓存,以确保用户的查询尽可能落在单个数据库上。

一个事务中有三个SQL,第一个SQL落在单个数据库上,第二个SQL落在单个数据库上,第三个SQL也落在单个数据库上,因此整个事务是跨数据库的,但是每个SQL都不跨数据库。京东有一个运单系统,这非常重要。就在6月,在京东618大推广到来之前,整个系统被卡住了,许多SQL变得非常慢。经过全面调查,一个事务涉及三个节点,其中两个没有问题,但第三个节点与其他事务发生冲突,属于跨节点冲突并产生连锁反应,导致大死锁,导致情况变得非常严重。

京东的分布式数据库如何应对大型推广活动

找到原因后,JD.com相应地重写了SQL。在正常意义上,去甲骨文是非常困难的,因为有很多细节,系统一般会在一段时间内是双系统的,写甲骨文和MySQL。此过程中的任何慢速SQL都将被记录。应用程序看到的缓慢的SQL是在这个级别,但是后面的链接非常长。为此,将详细记录整个链接,以便可以清楚地定位问题,无论是网络问题还是数据库问题。在缓慢的SQL出现之后,这种情况可能会发生。由于修改不好,出现了大量缓慢的SQL语句。此时,有必要对这些缓慢的SQL进行分类,然后对频繁出现的SQL进行更改。

京东的分布式数据库如何应对大型推广活动

此外,还有一个定制的路由策略,这是京东的特色。京东的分拣中心,为了避免上海、北京等大城市分拣量大而增加仓库压力的问题,采用在较好的仓库上设置较大数量的分拣中心,并正常拆分一些数据量较小的分拣中心。当小排序中心的数量增加时,较大的排序中心被移出,这样所有的排序中心都在分布式数据库的第一层完成。

京东的分布式数据库如何应对大型推广活动

刚才提到的整个环节都很长,与前端服务有关。整个促销前的链接是高度可用的。一套系统将分布有两个J代理,最多三个,将通过域名连接。代理背后的变化不会对业务产生影响。JProxy将部署两个,每个计算机房将部署两个,并且将有自己的灾难准备,因为一些计算机房可能有问题。在同一机房部署时,应考虑不要在同一机架上部署,并且有一个机架可能会挂起。此外,MySQL被部署在不同的机房,同一间机房将有一个副本。这种部署是因为MySQL经常有主从切换,比如硬件问题和网络电缆问题,这些都需要切换。因此,同一个计算机房将有一套从设备,另一套将有一套设备。

京东的分布式数据库如何应对大型推广活动

一方面,高可用性包括全链路压力测量和完美的监控报警。当核心功能不稳定时,完善的监控和报警系统非常重要,如最基本的生存监控。

最后,如何处理在线异常需要充分的计划和演练。由于分布式系统中节点数量众多,出错的概率也会增加。提前做好计划和演练,以便在推广期间可以轻松处理,并且计划将尽可能多地涵盖异常情况。

面对大促销这样的事件,基础系统团队的地位也非常重要。JD.com拥有非常成熟的基础系统和处理计划团队,能够以最快最及时的方式处理大促销过程中出现的问题。

标题:京东的分布式数据库如何应对大型推广活动

地址:http://www.yunqingbao.cn/qyyx/2184.html