靳 超,賈 佳,張志強(qiáng),汪健雄
(中國鐵道科學(xué)研究院集團(tuán)有限公司 電子計算技術(shù)研究所,北京 100081)
新一代客票系統(tǒng)承擔(dān)了12306互聯(lián)網(wǎng)售票、窗口售票、自動售取票、電話訂票等多種渠道售票業(yè)務(wù),目前,高峰日發(fā)售全國鐵路客票超過1 200萬張。尤其是互聯(lián)網(wǎng)/手機(jī)APP渠道占售票總量的比例最高約75%,已經(jīng)成為廣大人民群眾鐵路出行購票的主要渠道。
客票系統(tǒng)的席位由歸屬于18個鐵路局集團(tuán)有限公司的多個席位云計算節(jié)點承載,采用分布式存放,12306互聯(lián)網(wǎng)售票系統(tǒng)已建成雙活架構(gòu)的數(shù)據(jù)中心,新一代客票系統(tǒng)目前全渠道日處理能力超過2 000萬張,可很好地應(yīng)對春運(yùn)等重大節(jié)假日售票量劇增的情況。但是放票時段瞬時大交易量會對熱門鐵路局地區(qū)中心的席位服務(wù)器造成巨大的壓力,成為制約新一代客票系統(tǒng)售票性能的瓶頸。因此,必須通過有效分析各個席位服務(wù)器資源開銷,優(yōu)化車次數(shù)據(jù)存儲策略,以達(dá)到席位服務(wù)器售票壓力均衡、提高客票系統(tǒng)運(yùn)行效率、提升旅客購票體驗的目的[1]。
目前,對席位服務(wù)器進(jìn)行壓力均衡的手段是對車次的存放位置進(jìn)行調(diào)整,將熱門車次席位數(shù)據(jù)遷移至較為空閑的席位服務(wù)器,遷移過程主要是使用腳本結(jié)合人工批量操作,席位搬遷量大,搬遷速度較慢,只能在售票天窗時間操作,不利于快速恢復(fù)售票生產(chǎn),搬遷過程也受操作人員的熟練程度影響,存在一定的安全風(fēng)險。本文提出一種席位搬遷系統(tǒng)的設(shè)計與實現(xiàn),可實現(xiàn)席位在非售票天窗時間、小事務(wù)、安全、快速搬遷的目標(biāo),以適應(yīng)新一代客票系統(tǒng)席位集中管理的需要。
鐵路客票系統(tǒng)中的席位自動化搬遷系統(tǒng)架構(gòu)如圖1所示。
圖1 席位自動化搬遷系統(tǒng)架構(gòu)
席位自動化搬遷系統(tǒng)主要完成主中心和負(fù)載中心席位相關(guān)數(shù)據(jù)的自動化實時搬遷。業(yè)務(wù)人員指定需要搬遷的日期、車次、搬遷源中心和目標(biāo)中心,系統(tǒng)自動核實錄入數(shù)據(jù)是否有效,通過核實后系統(tǒng)自動調(diào)用連接交易管理中間件(CTMS)連接席位源中心,將車次相關(guān)的席位、調(diào)令、計劃和站車等數(shù)據(jù)搬遷至目標(biāo)中心,實現(xiàn)席位在不同服務(wù)器之間的快速遷移[2]。
系統(tǒng)用戶分為管理員用戶和普通用戶。管理員用戶有席位搬遷、賦權(quán)和查詢賦權(quán)日志、搬遷日志等主要功能;普通用戶有席位搬遷、查詢搬遷日志的功能。
管理員用戶只有一個。
普通用戶在管理員用戶賦權(quán)后才能登陸席位集中管理平臺進(jìn)行席位搬遷等操作,退出平臺后權(quán)限自動被回收,下次登陸仍需賦權(quán)[3]。
席位搬遷是對客票系統(tǒng)席位服務(wù)器中既有車次的存放位置進(jìn)行調(diào)整,搬遷的內(nèi)容包括車次席位、席位發(fā)布日志、調(diào)令、站車、基本計劃和臨時計劃等數(shù)據(jù)[4-5]。
2.2.1 搬遷環(huán)境設(shè)置
(1)搬遷位置
席位搬遷位置分為源中心和目標(biāo)中心。
源中心為搬遷前席位的存放位置,目標(biāo)中心為搬遷后席位的存放位置。目前客票系統(tǒng)席位分別存放在鐵路局和鐵路總公司的席位服務(wù)器上。
(2)搬遷車次
搬遷車次支持具體車次,如K401;支持按字頭或字尾設(shè)置,如G%、K1%、%9;也支持按列車類型設(shè)置,如直通車或管內(nèi)車。
(3)搬遷時段
搬遷時段支持指定始發(fā)日期,如20171001;支持指定始發(fā)日期時間段,如20170101~20171030;支持特定范圍,如預(yù)售期內(nèi)、預(yù)售期外。
2.2.2 席位自動搬遷
(1)搬遷前自動檢測
業(yè)務(wù)操作人員指定搬遷車次、搬遷日期、源中心和目標(biāo)中心,系統(tǒng)自動校驗源中心和目標(biāo)中心是否存在,搬遷日期內(nèi)該車次在源中心是否有效。
(2)自動搬遷
正式搬遷時,系統(tǒng)根據(jù)業(yè)務(wù)操作人員錄入信息調(diào)用存儲過程,從源中心匹配相關(guān)表的對應(yīng)數(shù)據(jù),導(dǎo)出中間表后再導(dǎo)入目標(biāo)中心。
(3)順序執(zhí)行
業(yè)務(wù)操作人員指定站車次,系統(tǒng)自動計算該站車次在搬遷日期內(nèi)對應(yīng)的全車次,如有多個全車次,系統(tǒng)將多個全車次順序搬遷,自動執(zhí)行。
2.2.3 席位監(jiān)控與核對
(1)過程監(jiān)控
搬遷開始時,席位搬遷進(jìn)度窗口實時監(jiān)控搬遷進(jìn)度,展示內(nèi)容包括當(dāng)前時間搬遷全車次、數(shù)據(jù)表及對應(yīng)數(shù)據(jù)量。
(2)數(shù)據(jù)核對
搬遷數(shù)據(jù)導(dǎo)入目標(biāo)中心后自動觸發(fā)數(shù)據(jù)核對機(jī)制,系統(tǒng)調(diào)用存儲過程統(tǒng)計中間表數(shù)據(jù)和目標(biāo)中心數(shù)據(jù)后進(jìn)行比對。
日志查詢分為賦權(quán)日志和搬遷日志。
賦權(quán)日志可根據(jù)被賦權(quán)工號查詢該工號的賦權(quán)時間、登陸時間和權(quán)限回收時間。通過該功能可以查詢搬遷工號的賦權(quán)時間及登陸退出時間。
搬遷日志可根據(jù)搬遷車次查詢搬遷該車次的操作員、搬遷開始和截止時間,以及搬遷車次相關(guān)所有數(shù)據(jù)的統(tǒng)計信息。通過該功能可以檢查搬遷車次的操作信息,車次搬遷前后數(shù)據(jù)是否一致,及搬遷過程是否符合搬遷時間要求。
搬遷工號被賦權(quán)后開始搬遷任務(wù),指定搬遷信息后系統(tǒng)自動校驗,校驗通過系統(tǒng)將車次席位等數(shù)據(jù)從源中心遷移至目標(biāo)中心,完成席位自動搬遷過程。系統(tǒng)總體業(yè)務(wù)流程如圖2所示。
圖2 系統(tǒng)總體業(yè)務(wù)流程
管理員工號登陸席位集中管理平臺,通過工號賦權(quán)功能給普通工號賦搬遷權(quán)限。
普通工號取得搬遷權(quán)限后,登陸席位集中管理平臺,輸入席位搬遷車次的相關(guān)信息,如源中心、目標(biāo)中心、搬遷日期、搬遷車次,確認(rèn)后開始搬遷工作;自動化搬遷系統(tǒng)參數(shù)數(shù)據(jù)初始化流程如圖3所示。
(1)席位搬遷開始時車次加鎖,暫停該車次的售票業(yè)務(wù)。
(2)修改鐵路總公司該車次的位置定義為目標(biāo)中心,同步復(fù)制到鐵路局服務(wù)器及車站服務(wù)器。
(3)清空搬遷中間表數(shù)據(jù),準(zhǔn)備數(shù)據(jù)遷移前的環(huán)境搭建工作。
(4)系統(tǒng)根據(jù)搬遷日期以及車次,從源中心將相關(guān)席位、調(diào)令、計劃等數(shù)據(jù)備份至中間表,再從中間表將數(shù)據(jù)小事務(wù)導(dǎo)入目標(biāo)中心,完成數(shù)據(jù)遷移工作[6]。
(5)系統(tǒng)自動核對搬遷前后數(shù)據(jù)是否一致,如不一致跳出正常流程,轉(zhuǎn)入異常處理流程。
圖3 系統(tǒng)搬遷初始化流程圖
(6)同步搬遷車次相關(guān)訂單的位置中心為目標(biāo)中心。
(7)刪除源中心該車次相關(guān)數(shù)據(jù)、全路服務(wù)器的余票數(shù)據(jù)及緩存數(shù)據(jù)。
(8)同步全路服務(wù)器的余票數(shù)據(jù)后將車次解鎖,恢復(fù)該車次的售票業(yè)務(wù),整個搬遷過程結(jié)束。
搬遷過程的具體流程如圖4所示。
席位自動化搬遷過程可以在搬遷進(jìn)度窗口中監(jiān)控,如遇異常情況可手工干預(yù)。
席位自動化搬遷過程結(jié)束后操作員可在搬遷日志中查詢某車次的搬遷記錄,輸出結(jié)果包括具體搬遷車次、具體搬遷日期、搬遷席位的相關(guān)數(shù)據(jù)統(tǒng)計等。
整個搬遷過程完畢后操作員退出席位集中管理平臺,該操作員的搬遷權(quán)限自動被回收。
席位目前存放在鐵路局和鐵路總公司的席位服務(wù)器上面,席位服務(wù)器的性能是影響售票業(yè)務(wù)速度的關(guān)鍵因素,通過對各個席位服務(wù)器CPU運(yùn)行情況分析,測算席位存放比例達(dá)到服務(wù)器最優(yōu)性能輸出是席位搬遷的關(guān)鍵。以北京鐵路局的4個服務(wù)器性能為例,如圖5所示。由于P1服務(wù)器承擔(dān)了傳輸、結(jié)賬、統(tǒng)計等業(yè)務(wù),暫無發(fā)售車次的席位存放,運(yùn)行一直平穩(wěn);而P2、P3、P4各負(fù)載中心性能各不相同,在不同時間段繁忙程度也不一樣[7]。
圖4 搬遷過程具體流程圖
圖5 數(shù)據(jù)庫監(jiān)控圖
圖5是P2、P3、P4這3個席位負(fù)載中心一個售票日的CPU繁忙對比,各負(fù)載中心CPU負(fù)載都沒有超過50%,P4相對繁忙一些,以此為依據(jù)P4上新增加的車次和既有存放的席位就有部分需要搬遷到P2和P3上,以達(dá)到各服務(wù)器售票壓力均衡的策略。
對新增車次,根據(jù)每個席位中心的繁忙情況和每個負(fù)載席位存放量情況,為客運(yùn)人員提供選取最閑和存放量最小的席位負(fù)載中心進(jìn)行存放,規(guī)避了之前需要依賴客運(yùn)人員按照經(jīng)驗進(jìn)行席位存放的風(fēng)險。
對既有席位數(shù)據(jù),可以根據(jù)各個席位中心的使用性能變化進(jìn)行動態(tài)調(diào)整,隨時完成該趟列車從一個繁忙的席位中心自動搬遷到另外一個相對空閑的席位中心,通過動態(tài)合理化的調(diào)整,充分利用了全路席位中心的資源[8]。
搬遷過程中將搬遷數(shù)據(jù)導(dǎo)入目標(biāo)位置中心,系統(tǒng)通過存儲過程自動核對中間表數(shù)據(jù)和目標(biāo)中心數(shù)據(jù)是否一致。
(1)核對席位、調(diào)令和計劃等數(shù)據(jù)一致后,可進(jìn)行源中心的數(shù)據(jù)刪除操作。
(2)核對席位、調(diào)令和計劃等數(shù)據(jù)不一致,可手工檢查解決問題后再次核對數(shù)據(jù),如果一致仍可進(jìn)行源中心的數(shù)據(jù)刪除操作;如無法解決可回退,系統(tǒng)自動修改車次為源中心,刪除目標(biāo)中心數(shù)據(jù)后解鎖車次,保證自動搬遷前后數(shù)據(jù)的一致性[9]。
(1)業(yè)務(wù)影響自動化搬遷開始時對搬遷車次進(jìn)行加鎖,停止該車次的售票業(yè)務(wù),由于搬遷數(shù)據(jù)量小,通常搬遷一趟車次在5 min內(nèi),中斷售票業(yè)務(wù)時間較短,可在非天窗時段在線遷移。
自動搬遷不需要暫停workload工作流,不影響其他在線業(yè)務(wù),避免夜間施工后補(bǔ)做營銷、席位發(fā)布等工作[10]。
(2)數(shù)據(jù)同步
搬遷過程中清除該車次相關(guān)的余票及緩存數(shù)據(jù)后立即同步,恢復(fù)售票業(yè)務(wù)時余票數(shù)據(jù)為實時數(shù)據(jù)。涉及搬遷車次的訂單在搬遷過程中自動同步為新的位置中心,不影響搬遷后該車次訂單的換票、改簽及退票業(yè)務(wù)。
自動化搬遷過程需要嚴(yán)格保障搬遷過程的安全性和數(shù)據(jù)一致性,只設(shè)置一個賦權(quán)工號,普通工號被賦權(quán)才可進(jìn)行搬遷工作,搬遷結(jié)束后搬遷工號的權(quán)限自動被回收;搬遷工號登陸平臺時判斷在線唯一性,確保搬遷過程中不會造成數(shù)據(jù)表被多人使用;搬遷時判斷搬遷車次唯一性,確保搬遷的車次只能在一個搬遷任務(wù)中存在。
自動搬遷過程中導(dǎo)入和刪除數(shù)據(jù)時采用小事務(wù)不復(fù)制操作,根據(jù)搬遷日期按天小批量處理數(shù)據(jù),不影響系統(tǒng)其它業(yè)務(wù),有效地保障了搬遷過程的安全性。
席位自動化搬遷系統(tǒng)通過對席位服務(wù)器交易繁忙程度進(jìn)行分析,制定嚴(yán)謹(jǐn)?shù)呢?fù)載均衡手段,實現(xiàn)席位數(shù)據(jù)在各席位服務(wù)器中發(fā)售壓力的均衡,達(dá)到了席位在非售票天窗時間、小事務(wù)、安全、快速搬遷的目標(biāo),并可適應(yīng)新一代客票系統(tǒng)席位集中管理的需要。該系統(tǒng)已在多年的春運(yùn)、國慶等售票高峰期發(fā)揮了重要作用,有效地提高了客票系統(tǒng)運(yùn)行效率和旅客購票體驗。
[1] 徐東平,李 琪,劉相坤,等.鐵路局級客票系統(tǒng)雙活架構(gòu)的研究[J]. 鐵路計算機(jī)應(yīng)用, 2015,24(11): 9-13.
[2] 王元媛,張志強(qiáng). 鐵路客票系統(tǒng)席位管理研究[J]. 鐵路計算機(jī)應(yīng)用,2016,25(4):34-37.
[3] 王永峰,華小剛,李 政. 鐵路自動檢票系統(tǒng)的設(shè)計與實現(xiàn)[J]. 鐵路計算機(jī)應(yīng)用,2015,24(11):46-51.
[4] 王 芳,李 剛,林 湛,等. 基于售票量預(yù)測的客票系統(tǒng)數(shù)據(jù)負(fù)載均衡方法研究[J]. 鐵路計算機(jī)應(yīng)用,2013,22(4):29-32.
[5] 張華兵,劉昕林,張海濤,等. IT運(yùn)維管理的自動化的研究[J].信息與電腦:理論版,2017(9):34-35.
[6] Jeffrey Garbus. Sybase ASE 12.5 Performance and Tuning: The Official Guide[M].Wordware Publishing Inc,2002: 112-115.
[7] 江 琳,王洪業(yè),賈 佳,等. 席位自動負(fù)載均衡在客票系統(tǒng)的研究和應(yīng)用[J]. 鐵路計算機(jī)應(yīng)用,2015,24 (7): 21-24.
[8] (英)門伯里.實用負(fù)載均衡技術(shù)[M].武海峰,陳曉亮,譯.北京:人民郵電出版社, 2013:96-97.
[9] 章 偉 .淺議計算機(jī)數(shù)據(jù)庫備份和恢復(fù)技術(shù)的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2016(2):224.
[10] 朱建生,單杏花,周亮瑾,等. 中國鐵路客票發(fā)售和預(yù)訂系統(tǒng)5.0 版的研究與實現(xiàn)[J].中國鐵道科學(xué),2006,27(6):95-103.