第440章 重連中!
值班技術員按下了那個紅色按鈕。
屏幕上沒有任何戲劇性的變化,沒有警報聲,沒有紅燈閃爍,只是兩側測試終端的網絡狀態指示從」在線」變成了」離線」。
綠色變成灰色。
同一秒,100筆交易請求從測試伺服器下發到兩側的終端。
監控室的匯總面板上出現了一行小字。
」斷網已執行,隨機時長生成中……」
三個點閃了兩下。
數字跳出來了。
」斷網時長:00:14:37」
十四分三十七秒。
值班技術員看到這個數字的時候身體微微頓了一下,他沒有轉頭,但他的後背肌肉收緊了一瞬間。
十四分三十七秒,接近上限。
值班組長看了一眼那個數字,表情沒有變化,他在記錄表上寫了下來。
所長也看到了。
他的目光在那個數字上停了大約兩秒,然後移到了左邊的屏幕上。
…………
左邊,工行。
斷網的瞬間,硬體雙通道的網絡模塊失去了信號,兩條鏈路同時斷開。
30秒緩存自動啟動。
終端側面的藍色指示燈從穩定的常亮變成了閃爍,一秒閃一次,每閃一次表示緩存模塊在檢測網絡狀態。
100筆交易開始執行。
前10秒。
緩存模塊接管了交易流程,100筆交易進入本地緩存隊列,不聯網,不清算,只記錄,等網絡恢復後統一同步。
緩存狀態面板上的數字在跳。
已緩存:23筆。
已緩存:41筆。
已緩存:67筆。
跳得很快,緩存寫入速度沒有問題。
工行測試間裡,老方盯著終端屏幕,指示燈在閃,藍色的光一亮一滅,打在他的臉上,節奏很穩。
趙銘遠站在角落裡,手插在口袋裡,拇指沒有搓手機殼,停在那裡不動了。
他在數秒數。
一,二,三……
藍燈閃了十下,十秒。
十一,十二,十三……
已緩存:89筆。
十八,十九,二十……
藍燈閃了二十下。
已緩存:100筆。
100筆全部進入緩存,用了大約二十二秒,在30秒窗口以內。
到這一步為止,一切正常。
趙銘遠的呼吸均勻了一些。
30秒緩存的設計就是為這個場景準備的,100筆交易在22秒內全部緩存完畢,剩下的時間用來等網絡恢復,網絡恢復後3秒同步。
但藍燈還在閃。
二十三,二十四,二十五……
網絡沒有恢復。
二十六,二十七,二十八……
藍燈閃爍的頻率變了,從一秒一次變成了半秒一次,這是緩存模塊的警告模式,30秒窗口即將到期。
二十九。
三十。
藍燈停了。
不是滅了,是從閃爍變成了常亮,但顏色變了。
從藍色變成了橙色。
橙色。
橙色是30秒緩存超時的狀態,緩存模塊的設計邏輯:30秒內網絡未恢復,停止接受新交易,已緩存的100筆交易進入」待同步」狀態,終端顯示屏彈出提示。
」網絡連接中斷,交易暫停,請等待網絡恢復。」
老方轉過頭看趙銘遠。
趙銘遠看著那個橙色的燈。
30秒到了,網絡沒有恢復。
他的拇指開始搓手機殼了。
…………
31秒,32秒,33秒。
橙燈常亮,終端屏幕上的提示沒有消失,」請等待網絡恢復。」
40秒。
老方在鍵盤上敲了兩下,試圖手動觸發網絡檢測。
」無信號。」
50秒。
趙銘遠的手從口袋裡抽出來了。
60秒,一分鐘。
他的離線方案覆蓋30秒,一分鐘已經超出設計範圍。
他看了一眼老方,老方回看了他一眼,兩個人都沒說話。
90秒。
橙燈還亮著。
終端屏幕上的提示變了。
」網絡連接中斷,緩存超時,交易掛起,重連中……」
重連中。
三個字,後面跟著三個點,三個點在轉,很慢。
120秒,兩分鐘。
三個點還在轉。
趙銘遠看著那三個點。
他知道了。
這不是一分鐘的測試。
…………
右邊,微光。
斷網的瞬間,v2.0引擎的網絡模塊同樣失去了信號。
但本地帳本模塊沒有任何變化。
因為它不依賴網絡。
本地帳本的設計邏輯跟工行的緩存完全不同,工行的緩存是」先記下來,等網回來再處理」,本地帳本是」在本地直接處理,處理完了等網回來再同步」。
區別在」處理」兩個字。
緩存不處理交易,它只暫存,交易的真正完成需要中心清算確認,沒有網絡就沒有清算,沒有清算交易就沒有法律效力。
本地帳本處理交易,占用鎖機制在本地完成交易確認,確保不會雙花,交易在斷網的瞬間就已經在法律意義上完成了,等網絡恢復後,本地帳本跟中心帳本同步,補上清算記錄。
斷網之後,100筆交易請求進入本地帳本。
老周看著屏幕。
交易筆數從0開始跳。
3,7,14,22。
跳得跟聯網的時候一樣快。
31,45,58。
響應時間面板上的數字:12.3ms。
比聯網時候的11.4ms慢了不到1毫秒。
67,79,88。
老周端起搪瓷缸喝了一口茶,熱的。
93,97,100。
100筆,全部完成。
用時:8.2秒。
完成率:100%。
平均響應時間:12.3ms。
本地帳本狀態面板上所有指標綠色,占用鎖運行正常,零雙花,零衝突。
方遠在看日誌。
全綠。
林徹站在角落裡,手插在口袋裡。
他沒有看屏幕,他在看窗外。
雪還在下。
…………
監控室。
斷網執行後第三分鐘。
匯總面板上,兩側的數據已經出現了分化。
左邊,工行。
交易完成:0/100。
狀態:緩存超時·重連中。
終端狀態:橙色警告。
右邊,微光。
交易完成:100/100。
狀態:全部完成(離線模式)。
平均響應時間:12.3ms。
終端狀態:正常。
0和100。
兩個數字並排顯示在匯總面板的正中間。
戴委員的鉛筆停在半空,筆尖朝下,但沒有落到紙上,他看著那兩個數字,然後他把鉛筆放下了,放在本子上面,黃色筆桿滾了一下,這次滾到了本子的邊緣,差一點掉下去。
張委員往前傾了一下身體,他的眼鏡反著屏幕的光。
數據記錄員在填表,她的手指在鍵盤上移動得比之前快了一些。
值班組長沒有動,他看著匯總面板。
所長看著匯總面板。
0/100,100/100。
他沒有說話。
沒有人說話。
…………
斷網第五分鐘。
左邊的狀態沒有變。
」重連中……」
三個點還在轉。
右邊的100/100定格在那裡,綠色的。
斷網第八分鐘。
左邊,」重連中……」
右邊,100/100。
斷網第十一分鐘。
趙銘遠不知道監控室的屏幕上顯示的是什麼,他在工行的測試間裡,他只能看到自己這邊的終端。
橙色的燈。
」重連中……」
三個點。
轉了十一分鐘。
他站在角落裡,手沒有插在口袋裡了,兩隻手垂在身側。
老方坐在終端前面,雙手交叉放在鍵盤上方,沒有敲任何鍵,他能做的都做了,30秒緩存是他的設計,30秒以外的事不在他的設計範圍內。
測試間裡安靜得能聽到暖氣管的聲音,和雪打在鐵皮牆上的聲音。
斷網第十三分鐘。
」重連中……」
斷網第十四分鐘。
趙銘遠靠在牆上,他的後背貼著牆面,牆很涼,隔著襯衫也能感覺到。
」重連中……」
三個點轉到了第十四分三十七秒。
然後——
網絡恢復了。
終端的信號指示從灰色跳回了綠色。
藍燈重新亮起,緩存模塊開始同步,100筆緩存交易在2.8秒內全部回寫完成。
終端屏幕上」重連中」的提示消失了,替換成了新的文字。
」網絡已恢復,緩存交易同步完成。」
100筆交易,全部同步成功。
但這100筆交易在斷網的十四分三十七秒里,沒有一筆完成過,它們只是被緩存了,被記下來了,等網回來以後才被處理。
在那十四分三十七秒里,如果有用戶站在終端前面等著付款——
他什麼都付不了。
…………
監控室。
網絡恢復後十秒。
匯總面板上的數字更新了。
左邊,工行。
交易完成:100/100(網絡恢復後同步完成)。
離線期間交易能力:0/100。
緩存超時:30秒。
用戶等待時間:14分37秒。
終端狀態:已恢復。
右邊,微光。
交易完成:100/100(離線期間全部完成)。
離線期間交易能力:100/100。
離線響應時間:12.3ms。
用戶等待時間:0秒。
終端狀態:正常(未中斷)。
兩列數據。
一列有一行紅色,」離線期間交易能力:0/100。」
另一列全是綠色。
所長摘下了老花鏡。
他沒有揉鼻樑,這次沒有。
他把眼鏡放在桌上,看著面板。
安靜了大約五秒。
然後他戴上眼鏡。
」繼續。」
值班組長愣了一下。
」第二輪斷網,」所長說,」重新生成時長。」
屏幕上沒有任何戲劇性的變化,沒有警報聲,沒有紅燈閃爍,只是兩側測試終端的網絡狀態指示從」在線」變成了」離線」。
綠色變成灰色。
同一秒,100筆交易請求從測試伺服器下發到兩側的終端。
監控室的匯總面板上出現了一行小字。
」斷網已執行,隨機時長生成中……」
三個點閃了兩下。
數字跳出來了。
」斷網時長:00:14:37」
十四分三十七秒。
值班技術員看到這個數字的時候身體微微頓了一下,他沒有轉頭,但他的後背肌肉收緊了一瞬間。
十四分三十七秒,接近上限。
值班組長看了一眼那個數字,表情沒有變化,他在記錄表上寫了下來。
所長也看到了。
他的目光在那個數字上停了大約兩秒,然後移到了左邊的屏幕上。
…………
左邊,工行。
斷網的瞬間,硬體雙通道的網絡模塊失去了信號,兩條鏈路同時斷開。
30秒緩存自動啟動。
終端側面的藍色指示燈從穩定的常亮變成了閃爍,一秒閃一次,每閃一次表示緩存模塊在檢測網絡狀態。
100筆交易開始執行。
前10秒。
緩存模塊接管了交易流程,100筆交易進入本地緩存隊列,不聯網,不清算,只記錄,等網絡恢復後統一同步。
緩存狀態面板上的數字在跳。
已緩存:23筆。
已緩存:41筆。
已緩存:67筆。
跳得很快,緩存寫入速度沒有問題。
工行測試間裡,老方盯著終端屏幕,指示燈在閃,藍色的光一亮一滅,打在他的臉上,節奏很穩。
趙銘遠站在角落裡,手插在口袋裡,拇指沒有搓手機殼,停在那裡不動了。
他在數秒數。
一,二,三……
藍燈閃了十下,十秒。
十一,十二,十三……
已緩存:89筆。
十八,十九,二十……
藍燈閃了二十下。
已緩存:100筆。
100筆全部進入緩存,用了大約二十二秒,在30秒窗口以內。
到這一步為止,一切正常。
趙銘遠的呼吸均勻了一些。
30秒緩存的設計就是為這個場景準備的,100筆交易在22秒內全部緩存完畢,剩下的時間用來等網絡恢復,網絡恢復後3秒同步。
但藍燈還在閃。
二十三,二十四,二十五……
網絡沒有恢復。
二十六,二十七,二十八……
藍燈閃爍的頻率變了,從一秒一次變成了半秒一次,這是緩存模塊的警告模式,30秒窗口即將到期。
二十九。
三十。
藍燈停了。
不是滅了,是從閃爍變成了常亮,但顏色變了。
從藍色變成了橙色。
橙色。
橙色是30秒緩存超時的狀態,緩存模塊的設計邏輯:30秒內網絡未恢復,停止接受新交易,已緩存的100筆交易進入」待同步」狀態,終端顯示屏彈出提示。
」網絡連接中斷,交易暫停,請等待網絡恢復。」
老方轉過頭看趙銘遠。
趙銘遠看著那個橙色的燈。
30秒到了,網絡沒有恢復。
他的拇指開始搓手機殼了。
…………
31秒,32秒,33秒。
橙燈常亮,終端屏幕上的提示沒有消失,」請等待網絡恢復。」
40秒。
老方在鍵盤上敲了兩下,試圖手動觸發網絡檢測。
」無信號。」
50秒。
趙銘遠的手從口袋裡抽出來了。
60秒,一分鐘。
他的離線方案覆蓋30秒,一分鐘已經超出設計範圍。
他看了一眼老方,老方回看了他一眼,兩個人都沒說話。
90秒。
橙燈還亮著。
終端屏幕上的提示變了。
」網絡連接中斷,緩存超時,交易掛起,重連中……」
重連中。
三個字,後面跟著三個點,三個點在轉,很慢。
120秒,兩分鐘。
三個點還在轉。
趙銘遠看著那三個點。
他知道了。
這不是一分鐘的測試。
…………
右邊,微光。
斷網的瞬間,v2.0引擎的網絡模塊同樣失去了信號。
但本地帳本模塊沒有任何變化。
因為它不依賴網絡。
本地帳本的設計邏輯跟工行的緩存完全不同,工行的緩存是」先記下來,等網回來再處理」,本地帳本是」在本地直接處理,處理完了等網回來再同步」。
區別在」處理」兩個字。
緩存不處理交易,它只暫存,交易的真正完成需要中心清算確認,沒有網絡就沒有清算,沒有清算交易就沒有法律效力。
本地帳本處理交易,占用鎖機制在本地完成交易確認,確保不會雙花,交易在斷網的瞬間就已經在法律意義上完成了,等網絡恢復後,本地帳本跟中心帳本同步,補上清算記錄。
斷網之後,100筆交易請求進入本地帳本。
老周看著屏幕。
交易筆數從0開始跳。
3,7,14,22。
跳得跟聯網的時候一樣快。
31,45,58。
響應時間面板上的數字:12.3ms。
比聯網時候的11.4ms慢了不到1毫秒。
67,79,88。
老周端起搪瓷缸喝了一口茶,熱的。
93,97,100。
100筆,全部完成。
用時:8.2秒。
完成率:100%。
平均響應時間:12.3ms。
本地帳本狀態面板上所有指標綠色,占用鎖運行正常,零雙花,零衝突。
方遠在看日誌。
全綠。
林徹站在角落裡,手插在口袋裡。
他沒有看屏幕,他在看窗外。
雪還在下。
…………
監控室。
斷網執行後第三分鐘。
匯總面板上,兩側的數據已經出現了分化。
左邊,工行。
交易完成:0/100。
狀態:緩存超時·重連中。
終端狀態:橙色警告。
右邊,微光。
交易完成:100/100。
狀態:全部完成(離線模式)。
平均響應時間:12.3ms。
終端狀態:正常。
0和100。
兩個數字並排顯示在匯總面板的正中間。
戴委員的鉛筆停在半空,筆尖朝下,但沒有落到紙上,他看著那兩個數字,然後他把鉛筆放下了,放在本子上面,黃色筆桿滾了一下,這次滾到了本子的邊緣,差一點掉下去。
張委員往前傾了一下身體,他的眼鏡反著屏幕的光。
數據記錄員在填表,她的手指在鍵盤上移動得比之前快了一些。
值班組長沒有動,他看著匯總面板。
所長看著匯總面板。
0/100,100/100。
他沒有說話。
沒有人說話。
…………
斷網第五分鐘。
左邊的狀態沒有變。
」重連中……」
三個點還在轉。
右邊的100/100定格在那裡,綠色的。
斷網第八分鐘。
左邊,」重連中……」
右邊,100/100。
斷網第十一分鐘。
趙銘遠不知道監控室的屏幕上顯示的是什麼,他在工行的測試間裡,他只能看到自己這邊的終端。
橙色的燈。
」重連中……」
三個點。
轉了十一分鐘。
他站在角落裡,手沒有插在口袋裡了,兩隻手垂在身側。
老方坐在終端前面,雙手交叉放在鍵盤上方,沒有敲任何鍵,他能做的都做了,30秒緩存是他的設計,30秒以外的事不在他的設計範圍內。
測試間裡安靜得能聽到暖氣管的聲音,和雪打在鐵皮牆上的聲音。
斷網第十三分鐘。
」重連中……」
斷網第十四分鐘。
趙銘遠靠在牆上,他的後背貼著牆面,牆很涼,隔著襯衫也能感覺到。
」重連中……」
三個點轉到了第十四分三十七秒。
然後——
網絡恢復了。
終端的信號指示從灰色跳回了綠色。
藍燈重新亮起,緩存模塊開始同步,100筆緩存交易在2.8秒內全部回寫完成。
終端屏幕上」重連中」的提示消失了,替換成了新的文字。
」網絡已恢復,緩存交易同步完成。」
100筆交易,全部同步成功。
但這100筆交易在斷網的十四分三十七秒里,沒有一筆完成過,它們只是被緩存了,被記下來了,等網回來以後才被處理。
在那十四分三十七秒里,如果有用戶站在終端前面等著付款——
他什麼都付不了。
…………
監控室。
網絡恢復後十秒。
匯總面板上的數字更新了。
左邊,工行。
交易完成:100/100(網絡恢復後同步完成)。
離線期間交易能力:0/100。
緩存超時:30秒。
用戶等待時間:14分37秒。
終端狀態:已恢復。
右邊,微光。
交易完成:100/100(離線期間全部完成)。
離線期間交易能力:100/100。
離線響應時間:12.3ms。
用戶等待時間:0秒。
終端狀態:正常(未中斷)。
兩列數據。
一列有一行紅色,」離線期間交易能力:0/100。」
另一列全是綠色。
所長摘下了老花鏡。
他沒有揉鼻樑,這次沒有。
他把眼鏡放在桌上,看著面板。
安靜了大約五秒。
然後他戴上眼鏡。
」繼續。」
值班組長愣了一下。
」第二輪斷網,」所長說,」重新生成時長。」