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

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

前言

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

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

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

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

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

一、数据库架构

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

1. 本地模式

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

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

2.  集中模式

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

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

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

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

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

二、UDBA运维自动化平台

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

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

UDBA数据库自动化运维平台的主要功能模块

三、性能优化

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

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

实时监控数据库性能,针对突发性数据库出现性能问题及时进行故障排查和故障恢复,保证业务生产正常进行。

每天对MySQL慢日志进行分析汇总后邮件抄送给相关研发同事,配合研发同事一起进行数据库优化。

周期性对数据库进行巡检,检查数据库运行状态,对压力较大的数据库进行重点分析优化。

定期对研发同事尤其新入职同事进行SQL培训,主要针对MySQL语法规范、MySQL表设计、MySQL查询优化等方面,提升研发同事的数据库设计能力和SQL编写能力,在开发过程中提前规避常见的性能问题。

将优化过程中遇到的问题归纳分析整理,帮助研发同事认识性能问题后的本质原因,避免重复出现相同故障。

积极与研发同事沟通学习,深入了解业务以便更好地从业务角度对数据库进行优化。

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25    来源:澎湃新闻网

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20    来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27    来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05    来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29    来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30    来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10    来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04    来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08    来源:四川新闻网

    分享
  • 央企Car Hacking Team诚招各路安全大咖

      传统安全行业做腻了?这里有新鲜、有趣、好玩的岗位等你来挑战!“数”驱产业变革“智”领汽车未来中国汽车技......

    02-24    来源:西安新闻网

    分享
返回列表
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。