成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

京東物流倉儲系統618大促保障背后的運維秘訣

開發 開發工具 前端
在本篇我們將會詳細介紹京東物流倉儲系統的數據庫架構,以及如何通過運維自動化平臺、性能優化、故障自愈和數據結轉等步驟進行數據庫運維架構的演進。

前言

京東物流極速的購物體驗背后隱藏著怎樣的秘訣?倉儲和配送時效是其中最為關鍵的一環。京東物流超強倉配體系,特別是在電商行業中獨有的倉儲系統,在其中起到了決定性的作用。

當前京東的庫房已經遍布全國,京東倉儲管理系統(簡稱WMS系統)是最核心的生產系統,涵蓋了從入庫,復核,打包,出庫、庫存和報表等等環節。

而作為系統最后端的數據庫,不僅僅承擔著存儲數據的任務,還是系統可用性的最后一道防線,如何保證倉儲系統數據庫的高性能和高可用,直接決定了庫房生產是否能順暢進行。

在本篇我們將會詳細介紹京東物流倉儲系統的數據庫架構,以及如何通過運維自動化平臺、性能優化、故障自愈和數據結轉等步驟進行數據庫運維架構的演進。

[[236068]]

一、數據庫架構

倉儲系統的數據庫架構,主要分為兩種模式,一種是本地模式,一種是集中模式:

1. 本地模式

本地模式是指當前WMS系統的應用和數據庫服務器都部署在本地庫房,目的是減少網絡延遲,提高作業效率。缺點是機房的電力和網絡環境略差,運維難度較高。部署架構圖如下:

2.  集中模式

集中模式是指在IDC機房部署一套WMS系統,多個區域的園區或庫房都通過網絡專線訪問,優點是減少資源部署,架構更為合理,便于運維管理,缺點是部分區域網絡延遲較高,一旦IDC發生故障影響范圍較廣。部署架構圖如下:

以上是京東倉儲系統數據庫的兩種主要部署模式,目前主要是園區部署模式,也就是一個或多個庫房園區共用一個集群(屬于本地模式的一種)。

但是隨著業務規模的增長,全國各地庫房建設日益增多,數據量也與日倍增,而對系統的高性能和高可用的要求卻越來越高,如何在現有架構模式下,還能保障系統的高效穩定運行,故障及時恢復,都對倉儲系統的運維帶來極大的挑戰。

以下章節就詳細闡述一下我們是如何應對這些挑戰的。

二、UDBA運維自動化平臺

工欲善其事必先利其器,想要做好大規模系統的運維管理,一定需要有自動化的運維平臺作為支持,同時也為了提高工作效率,減少和研發的溝通成本,庫房運維DBA開發了UDBA數據庫自動化運維平臺。該平臺除了是DBA日常自動化運維的操作平臺,還為WMS研發、運營人員提供了日常所需的技術支持和信息查詢。

UDBA數據庫自動化運維平臺的主要功能模塊如下所示:

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和內存配置更高的服務器,提升數據庫高性能和高可用性,為庫房順利且高效生產提供有力保障。

為避免數據庫升級擴容影響現有生產,我們將所有風險操作安排到半夜庫房停產運行,將升級過程進行拆分細化,對每個升級環節進行評估論證,編寫大量升級工具和檢查腳本來提升升級效率和降低誤操作風險,并積極配合研發同事進行測試驗證,努力將升級擴容帶來的負面影響降到最低,保障庫房正常生產。

【本文來自51CTO專欄作者張開濤的微信公眾號(開濤的博客),公眾號id: kaitao-1234567】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2018-06-21 08:20:24

京東數據庫架構運維秘訣

2015-07-14 09:24:03

京東618MySQL

2016-01-13 14:54:50

京東京東大腦

2011-02-28 14:14:06

2016-06-21 16:25:26

京東京東云云計算

2017-06-08 09:36:42

京東服務器

2016-06-13 15:48:33

京東

2018-12-05 08:30:27

IT運維邏輯

2013-11-13 10:04:52

雙十一運維數據中心

2024-11-27 10:44:48

2017-11-10 16:59:42

運維轉型物流

2015-07-17 09:41:30

京東產品技術支持

2011-01-05 15:39:44

2018-07-05 10:56:42

白熊視頻 京東618

2017-05-31 09:29:00

IT運維算法

2016-07-21 17:50:39

京東

2019-01-08 09:34:05

蘇寧金融紅包流量

2015-07-17 07:47:51

京東618訂

2018-03-21 10:24:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产精品久久久久秋霞不卡 | 日韩精品在线免费观看 | 久久久久综合 | 蜜臀网| 天天夜夜人人 | 久久亚洲一区二区三区四区 | 亚洲国产精品99久久久久久久久 | 日韩在线不卡视频 | 免费看国产一级特黄aaaa大片 | 国产一区二区三区在线 | 男女免费观看在线爽爽爽视频 | 日韩一区二区在线观看视频 | 中文字幕一区二区三区不卡 | 国产精品极品美女在线观看免费 | 不卡一区二区在线观看 | 国产精品视频 | 欧美日韩精品一区 | 国产精品91视频 | 欧美激情精品久久久久久 | 欧美中文字幕一区 | 日韩免费中文字幕 | 国产一二三区免费视频 | 国产精品成人一区二区 | 男插女下体视频 | 成人高清在线视频 | 欧美国产日韩精品 | 一级在线视频 | 一区二区三区四区视频 | 日本久久一区 | 精品99在线 | 国产在线高清 | 久热精品在线 | 免费在线观看91 | 天堂av影院 | 99精品欧美一区二区蜜桃免费 | 亚洲精品乱码久久久久久久久 | 黄色一级片aaa | 国产精品久久久一区二区三区 | 欧美一二三区 | 国产精品久久国产精品久久 | 久久精品一区二区视频 |