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

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

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

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

當前京東的庫房已經遍布全國,京東倉儲管理系統(簡稱 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 和內存配置更高的服務器,提升數據庫高性能和高可用性,為庫房順利且高效生產提供有力保障。 

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

責任編輯:龐桂玉 來源: ITPUB
相關推薦

2018-07-11 06:06:20

物流倉儲運維數據庫

2015-07-14 09:24:03

京東618MySQL

2016-01-13 14:54:50

京東京東大腦

2016-06-21 16:25:26

京東京東云云計算

2017-06-08 09:36:42

京東服務器

2011-02-28 14:14:06

2016-06-13 15:48:33

京東

2015-06-23 11:04:44

京東物流

2021-03-10 11:18:21

高可用系統限流

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

京東產品技術支持

2019-10-29 16:29:28

運維架構開發

2011-01-05 15:39:44

2018-07-05 10:56:42

白熊視頻 京東618

2016-07-21 17:50:39

京東

2017-05-31 09:29:00

IT運維算法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线区 | www.天堂av.com| 亚洲一区二区三区在线免费 | 亚洲视频中文字幕 | 久久久999免费视频 999久久久久久久久6666 | 性高朝久久久久久久3小时 av一区二区三区四区 | 天堂一区二区三区四区 | 国产精品婷婷 | 欧美一级免费黄色片 | 日韩在线一区二区三区 | 91精品国产91久久久久久 | 一级黄色裸片 | 一区二区av| 日韩高清在线观看 | 男人av在线播放 | 国产一区二区三区四区hd | 日本一区二区三区在线观看 | 99精品久久久久久久 | a国产一区二区免费入口 | 四虎精品在线 | 欧美精品久久久久久久久老牛影院 | 欧美一级黄色片在线观看 | 日本精品在线一区 | 国产一区二区三区在线 | 久久人 | 四虎影院免费在线 | 日韩在线免费播放 | 欧美一级视频 | 日韩视频一区二区 | 国产日韩一区二区三免费 | 午夜精品视频在线观看 | 热re99久久精品国产99热 | 日韩欧美电影在线 | 久久精品视频在线播放 | 丁香婷婷久久久综合精品国产 | 国产一区久久 | 丁香一区二区 | 羞羞视频网站免费看 | 国产美女精品 | 亚洲日韩中文字幕一区 | 亚洲狠狠丁香婷婷综合久久久 |