大家好,我是程式設計師魚皮。
今天上午被一條訊息刷屏了:上交所 P0 事故直接當機、連帶著多家炒股軟體也崩了!
咋回事呢?
很多朋友應該也聽說了,A 股這 3 天簡直瘋了!連漲 300 點重新站上 3000 點,白酒、地產板塊甚至迎來 漲停!
前幾天華爾街還在 “anything But china”,現在已經是 “all in,buy china” 了。
今天早上,A 股三大股指又是大幅高開。然而正當大家高呼 “牛回,速歸!” 的時候,上午 10 點上證指數成交量 急劇萎縮 90% 以上,指數直接拉成了直線。
後面更是出現 交易異常情況,成交資料停止在 10:22 左右!
有業內人士認為市場委託量非常大,撤單委託可能無法及時收到明確結果,屬於正常現象。
也就是說真的是被買崩了?
根據最新訊息,11 點半收盤前後,上交所成交已陸續恢復,整個故障大概持續了 1 個小時左右:
聊點兒技術
根據網上的訊息,本次故障的具體表現包括但不限於 “異常卡頓、交易延遲”。
另據財聯社,有券商已向分支機構通報,即 “經公司技術監控發現,目前報單有延遲。各家券商均有反饋,屬於 行業共性問題”。有業內人士分析,當前市場委託量非常大,客戶的撤單委託可能無法及時收到撤單成功或失敗的明確結果,屬於正常現象。
在發生異常卡頓和交易延遲的情況下,主要原因通常是由於市場委託量激增導致的訂單擁擠,進而引發 “塞單”。這種情況下,客戶的撤單請求可能無法及時得到反饋,導致他們不確定委託狀態,進而頻繁撤單和重新申報,這進一步加劇了系統的流量壓力,嚴重時還會造成雪崩!
歷史上其他交易所也曾遇到類似情況,股市波動大的時候,系統壓力也跟著大。
為有效最佳化和解決這類問題,一般交易所和券商系統都會採用分散式架構,以便在高峰期間更靈活地分散請求壓力。而且最關鍵的是,下單請求一般都是利用訊息佇列實現 排隊和非同步處理 的,可以對系統進行削峰,減少瞬時負擔。系統故障或重啟後,還能夠陸續撈回未處理的訊息,重新處理未完成的交易。
其實有點兒設計秒殺系統的感覺了~ 這也是程式設計師朋友們經常在面試時被考察的問題,一旦併發量上來了,血壓也就上來了。