Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >京东物流仓储系统618大促保障背后的运维秘诀

京东物流仓储系统618大促保障背后的运维秘诀

作者头像
京东技术
发布于 2018-06-20 09:31:39
发布于 2018-06-20 09:31:39
1.7K0
举报
文章被收录于专栏:京东技术京东技术

前言

京东物流极速的购物体验背后隐藏着怎样的秘诀?仓储和配送时效是其中最为关键的一环。京东物流超强仓配体系,特别是在电商行业中独有的仓储系统,在其中起到了决定性的作用。

当前京东的库房已经遍布全国,京东仓储管理系统(简称WMS系统)是最核心的生产系统,涵盖了从入库,复核,打包,出库、库存和报表等等环节。

而作为系统最后端的数据库,不仅仅承担着存储数据的任务,还是系统可用性的最后一道防线,如何保证仓储系统数据库的高性能和高可用,直接决定了库房生产是否能顺畅进行。

在本篇我们将会详细介绍京东物流仓储系统的数据库架构,以及如何通过运维自动化平台、性能优化、故障自愈和数据结转等步骤进行数据库运维架构的演进。

一、数据库架构

仓储系统的数据库架构,主要分为两种模式,一种是本地模式,一种是集中模式:

1.1   本地模式

本地模式是指当前WMS系统的应用和数据库服务器都部署在本地库房,目的是减少网络延迟,提高作业效率。缺点是机房的电力和网络环境略差,运维难度较高。部署架构图如下:

1.2   集中模式

集中模式是指在IDC机房部署一套WMS系统,多个区域的园区或库房都通过网络专线访问,优点是减少资源部署,架构更为合理,便于运维管理,缺点是部分区域网络延迟较高,一旦IDC发生故障影响范围较广。部署架构图如下:

以上是京东仓储系统数据库的两种主要部署模式,目前主要是园区部署模式,也就是一个或多个库房园区共用一个集群(属于本地模式的一种)。

但是随着业务规模的增长,全国各地库房建设日益增多,数据量也与日倍增,而对系统的高性能和高可用的要求却越来越高,如何在现有架构模式下,还能保障系统的高效稳定运行,故障及时恢复,都对仓储系统的运维带来极大的挑战。

以下章节就详细阐述一下我们是如何应对这些挑战的。

二、UDBA运维自动化平台

工欲善其事必先利其器,想要做好大规模系统的运维管理,一定需要有自动化的运维平台作为支持,同时也为了提高工作效率,减少和研发的沟通成本,库房运维DBA开发了UDBA数据库自动化运维平台。该平台除了是DBA日常自动化运维的操作平台,还为WMS研发、运营人员提供了日常所需的技术支持和信息查询。

UDBA数据库自动化运维平台的主要功能模块如下所示:

三、性能优化

由于仓储业务逻辑复杂,并且系统是从早期的SQLServer迁移到MySQL的,对数据库是强依赖的关系。很多业务场景尤其WMS5的报表业务会涉及很多超大表(单表数据量超过1千万行)的关联,且查询条件根据现场工作人员需求进行组合修改,再加上部分表设计不合理以及查询SQL语法不规范等问题,给数据库优化带来极大挑战。

我们主要通过以下方式来保证数据高性能:

  • 实时监控数据库性能,针对突发性数据库出现性能问题及时进行故障排查和故障恢复,保证业务生产正常进行。
  • 每天对MySQL慢日志进行分析汇总后邮件抄送给相关研发同事,配合研发同事一起进行数据库优化。
  • 周期性对数据库进行巡检,检查数据库运行状态,对压力较大的数据库进行重点分析优化。
  • 定期对研发同事尤其新入职同事进行SQL培训,主要针对MySQL语法规范、MySQL表设计、MySQL查询优化等方面,提升研发同事的数据库设计能力和SQL编写能力,在开发过程中提前规避常见的性能问题。
  • 将优化过程中遇到的问题归纳分析整理,帮助研发同事认识性能问题后的本质原因,避免重复出现相同故障。
  • 积极与研发同事沟通学习,深入了解业务以便更好地从业务角度对数据库进行优化。

在一次服务器巡检中,我们使用SHOW ENGINE INNODB STATUS查看MySQL服务器运行状态时,发现该数据库存在死锁问题,通过多次排查,发现死锁发生频率较高,由于死锁告警信息中的事务信息不全,我们第一时间联系相关业务人员,了解相关业务实现逻辑,该业务通过程序来保证数据唯一性,采用“先尝试更新,后尝试插入”的事务顺序来操作,在详细了解业务逻辑后,通过模拟测试帮助研发同事认识到该死锁的核心原因,并在此基础上提供改进建议,最后将该问题优化方案整理成文档抄送给更多研发同事。

四、故障自愈

仓储数据库故障自愈系统主要解决两个问题,一个是故障的自动切换,一个是组件的自动恢复。系统功能图如下所示:

首先硬件作为应用系统的底层基础设施,一旦出现故障将大大降低系统的可用性,仓储业务的数据库集群分散在全国各地几百个库房,数据库服务如何在遇到硬件等异常时快速的故障转移,如何能降低各地网络等外界环境对数据库的性能影响?

其次系统在日常运行中,因为Bug或者其他原因,可能会导致数据库宕机,从库复制进程中断,复制延迟过大等等问题,如何快速解决这些问题,也成为服务质量优良的关键衡量标准。

基于以上这些考虑和实际需求,我们结合基础信息系统,监控系统,以及业界成熟的MHA高可用方案,实现了故障的自动切换,当数据库主库或者从库遇到异常,能够顺利得进行自动切换,保障数据库服务的持续性,当服务器有维护需求时,提供手动切换管理,更方便的进行硬件维护。

同时基于UDBA数据库自动运维平台,对全部MySQL群集复制情况进行自动探测,自动识别高延迟实例,并通过修改innodb_flush_log_at_trx_commit和sync_binlog的刷盘策略参数进行快速恢复,一旦复制正常,参数将自动调整为标准值,同时复制的IO线程或SQL线程异常停止,也可进行自动启动。

上面的处理结果都将以短信、微信和邮件等方式,通知值班同事,处理过程在UDBA自动运维平台上同样可以查询,方便对故障切换的进一步分析和统计。

五、数据结转

库房数据有时效性强和生命周期短的特点,对于数据量较大且操作频繁的业务表,如果不进行历史数据归档,会存在严重性能问题和磁盘存储瓶颈,因此我们采用生产库保留三月+报表库保留一年的归档策略,对生产库上超过三月”历史数据”进行删除,对报表库上超过一年的“历史数据”结转到IDC机房进行存放。

在未引入自动化结转平台前,需要DBA手动在每套服务器上部署结转程序,当结转条件发生变化时需要通过命令行共计批量更新每套服务器上的配置信息,DBA无法准确掌握每套服务器的结转情况,导致运维难度高且存在较高的误操作风险。

针对库房数据结转的各项痛点,在对结转流程的抽象分析基础上开发了自动化结转平台,其架构为:

自动化优化平台有以下优点:

  • 调度作业集中管理,无需DBA再到每套服务器上部署代理作业,结转平台根据调度配置自动将调度作业推送到库房服务器上运行,可以根据业务需求轻松调整调度时间和结转条件以及结转服务器。
  • 历史库动态扩容,在京东率先引入新一代分布式关系型数据库CockroachDB作为历史归档服务器,支持高并发的密集写入操作,可以按需对集群进行动态扩容,且能很好动态适应报表库上表结构变化。
  • 数据职责分离,DBA作为数据库管理员而不是数据管理员,能提供数据库服务器相关信息但无法定义数据结转条件,自动结转平台将结转条件的管理接口在权限控制的基础上提供给数据管理员,明确划分职责权限。
  • 实时掌握结转调度信息,自动结转平台提供丰富的报表和管理界面,帮助DBA轻松掌握当前结转调度信息和历史结转情况。

六、升级扩容

由于各种历史原因,目前库房数据库仍主要使用2011年发布的MySQL 5.5版本,随着MySQL 5.7版本的逐渐稳定,我们通过谨慎测试评估发现,MySQL 5.7可以带来极大的性能提升,并且其完善和改进了很多高可用性及可维护性方面的功能,能帮助DBA更好的管理MySQL数据库

升级MySQL 5.7可以带来如下优势:

  • 性能提升,在官方测试报告中,MySQL 5.7在高并发环境下的处理能力相对MySQL 5.5有数十倍提升。
  • 高可用性,MySQL5.7版本引入多线程复制和基于AfterSync模式的半同步等复制特性,能有效减少主从复制延迟,提升数据安全
  • 可维护性,MySQL5.7版本引入GTID复制、Online DDL及新版系统视图和管理函数等,极大提升数据库可维护性,降低DBA运维风险和管理难度

由于库房数据库服务器长期运行在恶劣的机房环境中,从而产生RAID卡电源故障、服务器硬件老化、过保等引起老旧服务器性能变差的问题,导致DBA疲于处理服务器宕机或服务器硬件引起性能瓶颈的各种事件,因此在升级MySQL版本同时,我们也优先对业务操作频繁的重点仓进行升级扩容,使用IO性能更好的SSD硬盘以及CPU和内存配置更高的服务器,提升数据库高性能和高可用性,为库房顺利且高效生产提供有力保障。

为避免数据库升级扩容影响现有生产,我们将所有风险操作安排到半夜库房停产运行,将升级过程进行拆分细化,对每个升级环节进行评估论证,编写大量升级工具和检查脚本来提升升级效率和降低误操作风险,并积极配合研发同事进行测试验证,努力将升级扩容带来的负面影响降到最低,保障库房正常生产。

---------------------END---------------------

下面的内容同样精彩

点击图片即可阅读

京东技术 ∣关注技术的公众号

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 京东技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
做运维的感悟(做运维需要考虑事,运维组织结构,运维学习地图....)
不过大公司会专门做某一部分,例如应用运维不需要关注测试和安全等方面,但建议都学学,触类旁通有好处。 有这些基础,进到公司就可以去完成基础的建设工作了。比如会安排你搭建服务,整理资产报表,清理一些日志,这些基本工作可以帮助你了解公司当前有哪些服务,各种服务之间是如何运作的,之后再慢慢参与到业务中,薪资一线城市可以达到6-10k左右。
iginkgo18
2020/12/23
6.7K0
做运维的感悟(做运维需要考虑事,运维组织结构,运维学习地图....)
智能仓储物流系统的魂---数字化信息管理系统WMS,WCS……
指挥一个系统去做事情,这很像人的大脑指挥身体各个器官做出行为一样。人在走路,奔跑,说话,微笑,吃饭等等一系列动作前,都是大脑在经过思考(信息处理)后做出的指令。
老King
2022/12/09
1.3K0
智能仓储物流系统的魂---数字化信息管理系统WMS,WCS……
数据库智能运维探索与实践
近些年,传统的数据库运维方式已经越来越难于满足业务方对数据库的稳定性、可用性、灵活性的要求。随着数据库规模急速扩大,各种NewSQL系统上线使用,运维逐渐跟不上业务发展,各种矛盾暴露的更加明显。在业务的驱动下,美团点评DBA团队经历了从“人肉”运维到工具化、产品化、自助化、自动化的转型之旅,也开始了智能运维在数据库领域的思考和实践。
美团技术团队
2018/12/14
4.4K0
数据库智能运维探索与实践
安能物流 All in TiDB 背后的故事与成果
在数字化转型的浪潮中,安能物流通过技术创新不断提升物流效率,迈出了全链路 All in TiDB 的重要一步。本文将深入探讨安能物流如何选择 TiDB 作为核心数据库,以应对高并发、数据处理能力和系统可扩展性等挑战。通过 TiDB 的弹性扩展能力、金融级高可用性和实时 HTAP 特性,安能物流不仅解决了过去的技术瓶颈,还为未来的数字化发展奠定了坚实基础。
PingCAP
2024/11/27
230
安能物流 All in TiDB 背后的故事与成果
如何构建企业内的 TiDB 自运维体系
得物 App 从创立之初,关系型数据库一直使用的开源数据库产品 MySQL。和绝大部分互联网公司一样,随着业务高速增长、数据量逐步增多,单实例、单库、单表出现性能瓶颈和存储瓶颈。从选型和架构设计角度来看这很符合发展规律,一开始没必要引入过于复杂的架构导致资源成本和开发成本过高,而是逐步随着业务发展速度去迭代架构。为了应对这些问题,我们采取了诸多措施如单库按业务逻辑拆分成多个库的垂直拆分,分库分表的水平拆分、一主多从读写分离等。这些技改同时也使得整个业务层架构更加复杂,且无法做到透明的弹性,因此我们逐步把目光转向了已经趋于成熟的分布式关系型数据库 TiDB。
得物技术
2022/12/20
6910
如何构建企业内的 TiDB 自运维体系
知乎 PB 级别 TiDB 数据库集群管控实践
在现代企业中,数据库的运维管理至关重要,特别是面对分布式数据库的复杂性和大规模集群的挑战。作为一款兼容 MySQL 协议的分布式关系型数据库,TiDB 在高可用、高扩展性和强一致性方面表现卓越。知乎自 2019 年开始应用 TiDB,并通过云原生 Kubernetes(以下简称 K8s)环境和 TiDB Operator 来实现高效的集群管控,支撑业务的快速发展。本文由知乎数据库架构团队负责人代晓磊撰写,深入探讨知乎如何利用 TiDB 的生态架构和平台化运维工具,结合 TiDB Operator 和自研的天穹平台,构建出灵活、稳定且高效的数据库管控体系。通过自动化部署、数据迁移、监控预警等一系列手段,知乎为业务研发和 DBA 团队提供了强有力的支持,确保数据库服务能够在高并发、大数据场景下持续稳定运行。
PingCAP
2024/12/18
2410
知乎 PB 级别 TiDB 数据库集群管控实践
智能运维:AIOps与DevOps落地、数据库选型与SQL优化策略都在这了!
这将会是一次为广大技术同仁量身定制的技术探索与交流,本次Gdevops北京站从往届峰会收集而来的数千份调查问卷中汲取出大多数参会者的意见,并以此作为主题设置、议程安排、会议选址、会务服务等重要参考,力求为技术人提供一场学以致用、身心愉悦的技术盛会。
养码场
2018/08/14
1.4K0
腾讯云运维干货沙龙-海量运维实践大曝光 (三)
织云平台团队
2017/12/17
5.3K0
腾讯云运维干货沙龙-海量运维实践大曝光 (三)
从京东618数据井喷看大数据平台峰值处理制胜关键
京东集团618作战指挥中心 ,成员来自于京东各个技术体系,包括核心系统架构师、一线运维专家、科研学者等。 近200位成员在618时共同努力,确保流量洪峰来临时系统安全、稳定、可靠,致力于提供最佳的用户体验。
用户5265382
2019/05/16
9810
史上最全互联网运维工作规划!十分钟找到职业方向!
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。 运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障,多数据中接入提高业务的容灾能力,通过监控、日志分析等技术手段,及时发现和响应服务故障,减少服务中断的时间,使公司的互联网业务符合预期的可用性要求,持续稳定地为用户提供务。 在安全方面,运维人员需要关注业务运行所涉及的各个层面,确保用
小小科
2018/05/03
4.9K0
史上最全互联网运维工作规划!十分钟找到职业方向!
运维与自动化运维发展概括
1、运维自动化发展 运维学习和发展的一个线路: 1.搭建服务(部署并运行起来) 2.用好服务(监控、管理、优化) 3.自动化(服务直接的关联和协同工作) 4.产品设计(如何设计一个运维系统) -----当下云计算的核心竞争力是运维! 系统架构师(偏管理):网络 系统 数据库 开发 云计算 自动化 运维管理 服务管理 项目管理 测试 业务 -----专注于某一领域 2、运维自动化发展 运维工作内容分类: 监控运维(7x24运维值班、故障处理) 应用运维(业务熟悉、服务部署、
程序员同行者
2018/07/02
5.1K0
Gdevops峰会丨分布式、中台等架构解析,及数仓集群、智能运维、监控优化等实操解读
2021 Gdevops全球敏捷运维峰会 - 广州站,将在5月28日盛大举办。Gdevops经过创办6年成功举行近20场大会的经验积淀,本次峰会结合行业趋势与技术热点,精选出最能破解当下运维、数据库、金融科技领域核心痛难点的干货议题,不容错过的精彩看点本文带大家先睹为快!
我是阳明
2021/05/17
3.7K0
为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
本文介绍了某省妇幼健康管理系统的建设和数据库架构优化的过程。原有的数据库架构使用了 StarRocks 作为分析层,但随着业务的发展,这套架构暴露出诸多痛点,不再适应妇幼业务的需求。为解决这些问题,该系统选择了将原有架构中的 StarRocks 替换为 TiFlash 组件,并引入了 Yearning 自动化 SQL 审计平台,提高了运维效率和业务扩展能力。新架构在人力成本释放、运维成本降低等方面取得了显著的成效。
PingCAP
2024/05/01
1160
云计算运维之“轻”与“重”
云计算作为改变世界的力量,已经开始在各种应用实现中被不断印证,而现在还只是云计算生命周期的启航,这场变革的演进一定会超乎大多数人的想象。早些年,当我读到尼古拉斯·卡尔《IT不再重要》(The Big Switch: Rewiring the World, from Edison to Google)这类文章的时候,对于云计算所具备水、电般属性的勾勒,既为之兴奋,又苦恼无法为具化这些属性找到实践支撑。而最近三年来,云计算发展风生水起,以我这三年切身参与阿里云计算产品实现和落地的过程为例,恰好是云计算从“虚”到
小小科
2018/05/03
2.3K0
云计算运维之“轻”与“重”
TiDB 在 58 集团的应用与实践
58 集团业务种类繁多,目前包括的业务有 58 同城、赶集网、安居客、58 金融公司、中华英才网、驾校一点通等,数据库种类包括 MySQL、Redis、MongoDB、ES、TiDB。我们自己构建了“58 云 DB 平台”,整合了所有数据库的一体化运维。
PingCAP
2019/08/29
9430
百度智能运维的技术演进之路
随着大数据、人工智能、云计算技术的日渐成熟和飞速发展,传统的运维技术和解决方案已经不能满足需求,智能运维已成为运维的热点领域。同时,为了满足大流量、用户高质量体验和用户分布地域广的互联网应用场景,大型分布式系统的部署方式也成为了高效运维的必然之选。如何提升运维的能力和效率,是保障业务高可用所面临的最大挑战。
用户2591787
2018/07/09
2.2K0
百度智能运维的技术演进之路
嘉维蓝鲸的2018,转型、蜕变、收获!嘉维蓝鲸的2019,研运一体强助力!
这一年,蓝鲸平台从自动化运维平台,重新定义为研发运营一体化平台,实现了CI、CD、CO的IT管理全生命周期的打通。
嘉为蓝鲸
2019/01/16
1.5K0
仓储管理软件在物流自动化解决方案中的应用与发展
仓储物流在整个供应链环节中起着重要的承上启下的作用。仓储物流管理软件是供应链降本增效的大势所趋。优秀的仓储物流管理软件帮助企业提高仓库的运营效率、透明度和灵活性。数据驱动的智能化方向是物流系统的趋势之一。
用户9868602
2022/09/02
8830
仓储管理软件在物流自动化解决方案中的应用与发展
微博热点事件背后数据库运维的“功守道”
【导语】 微博拥有超过3.76亿月活用户,是当前社会热点事件传播的主要平台。而热点事件往往具有不可预测性和突发性,较短时间内可能带来流量的翻倍增长,甚至更大。如何快速应对突发流量的冲击,确保线上服务的稳定性,对于提供全微博数据托管的服务部门数据库团队来说既是机遇又是挑战。本文尝试从一线DBA的视角管窥微博热点事件背后的数据库运维应对之道。 背景&挑战 背景 正是图1这条微博动态,让一个平常的国庆假期变得不同寻常,微博刚一发出就引爆网络,它将明星CP动态推向了舆论的高潮,并霸占微博热搜榜好几天,也正是因为这
CSDN技术头条
2018/02/06
1.7K0
微博热点事件背后数据库运维的“功守道”
京东618独家科技玩法大全
京东618 今年,你的专属618专场是什么? “京东618”不再仅仅是大促的代名词,而变成了京东黑科技轮番亮相的前沿大舞台。 买买买能“包办”?是的! 据调查,过去三年用户对网购体验最大的感受就是,他们能够更容易的找到自己喜欢的商品。京东打开京东APP,系统推送的都是用户最近想买的和最需要的,购物车里置顶的商品也是用户最喜欢的,商品数量变少或者降价系统会自动提醒,买买买也能“包办”。 通过对消费行为的分析与挖掘,给予用户个性化推荐,缩短商品与用户的距离。根据用户平日消费结构生成专属卖场,如果用户偏爱购买国
京东技术
2018/06/20
1.2K0
推荐阅读
相关推荐
做运维的感悟(做运维需要考虑事,运维组织结构,运维学习地图....)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档