首頁> 歷史軍事> 目錄頁> 第16章 區域網路

第16章 區域網路

2026-09-19 23:29:41 作者: 皖南朝天椒

  四月三日下午,某電科研究所的會議室里,白板已經被寫滿了兩遍。

  「別寫『全市統一平台』這五個字了。」坐在白板前的男人把記號筆帽咬在嘴裡,含糊不清地說,「我們沒那麼多時間,我們今天只做一件事,讓帳本能運行起來就行。」

  他叫趙聞川,二零所網絡與系統工程方向的負責人。頭髮亂得像雞窩,眼鏡片上還有一塊沒擦乾淨的手印。

  會議桌兩邊坐著十幾個人。

  企鵝廠習安研發中心來了兩名支付後端工程師,阿狸雲駐秦團隊來了資料庫的專家,華威來了運營商網絡和終端適配研究員,字節那邊也來了推薦系統研發人員,交大、工大、習電各派了老師和研究生,另外參會的還有幾家本地軟體公司的技術骨幹。

  趙聞川敲了敲桌面,

  「上面給的需求很清楚。積分綁定身份,並且不能轉讓,不能提現。我們這次只討論技術問題。」

  企鵝廠來的徐安琪舉手,她三十出頭,短髮,黑框眼鏡,說話語速很快,

  「先把帳戶模型敲定。積分帳戶通過身份證號、手機號等標籤標註。」

  來自字節的梁嘉樹敲擊鍵盤:「商品分類也要有。SKU需要映射成幾類:食物、基礎藥品、日用品、特殊保障品。積分則規則按品類走,別按具體商品寫死。」

  阿狸雲的陳柏舟靠在椅背上,手裡轉著筆,「帳本設置一定要嚴謹。積分一旦扣錯,整個系統都會崩潰。建議採用追加式流水,所有發放、扣減和撤銷都寫進ledger表,帳戶餘額從流水聚合或者異步物化。每筆交易有全局的transaction id。即使POS端重複提交,後台也只能扣一次。」

  交大軟體學院的胡教授點頭,「數據不能只存餘額。餘額被改了根本查不出來,只要有流水在,一切都能溯源。」

  一位來自習電的研究生小聲說:「那資料庫用什麼?MySQL夠嗎?」

  陳柏舟看了他一眼,

  「第一版足夠了,別一上來搞什麼複雜的分布式。核心庫用PostgreSQL或者MySQL主從,冷熱分離,交易庫單獨跑。全市一千多萬人,真正同時買東西的峰值是有限的,先按每秒五千到一萬筆交易設計。」

  梁嘉樹馬上接話,「入口層面要限流。別等老太太們早上七點一起掃貨,把系統搞崩潰。社區端、商超端要分不同的隊列。Kafka或者Pulsar有沒有現成集群?」

  角落裡一個工程師舉手,「我們園區有卡夫卡集群,但規模不大,之前給物流系統用的。」

  趙聞川在白板做下記錄。

  來自華威的高昊把一張網絡圖推到中間,

  「網絡這塊,運營商本地核心網絡還能跑,我們建議開一個專用的APN,名字就叫xalife或者minsheng都行,商超POS、終端、社區工作機走專用的APN進政務內網。固定點位能接光纖的接光纖,不能接的用4G/5G CPE。DNS全部本地化,積分系統域名解析到市內數據中心。」

  來自工大的周蔓教授問:「數據中心放哪?」

  趙聞川指了指腳下,「這裡放一套主要節點。交大機房、習電機房各放一套只讀節點。電力優先級要提前報備上去,核心機櫃外接UPS和柴油發電機。」

  高昊補充:「基站供電也要考慮到,不能假設全市無線信號一直滿格。主城區內的基站一定要優先保障電力供給,邊緣區域的終端要支持離線交易。」

  「離線交易最麻煩。」徐安琪立刻說,「商品限購,終端離線後,居民到三個店各買一次米,怎麼辦?」

  會議室里安靜了兩秒。

  梁嘉樹抬頭:「可以給終端發離線額度包。每個終端每天一個簽名額度,比如只能離線扣分一百戶、每戶限制交易數量。風險控制在終端級別。聯網後同步,超過額度直接鎖死。」

  陳柏舟皺眉:「這樣會有時間差。某個家庭在網絡端交易過,另一個離線節點數據還沒有傳過去。」

  

  徐安琪說:「高價值商品必須在線交易。比如藥品,肉蛋奶等。主糧和一些基礎日用品可以小額度離線交易,系統不能為了絕對正確,把斷網的社區全餓著。」

  胡教授慢慢說:「可以設置軟限制,離線只允許消耗基礎包,聯網後對沖。衝突時後台標記異常,不讓下一次繼續離線購買。這樣居民不會因為系統誤差被當場攔住。」


  「那終端怎麼搞?」

  高昊說:「現有超市收銀機能改的就改。掃碼槍、POS機都還在。我們還可以做一個輕量化的客戶端,Windows和安卓兩版。能聯網就直接調接口,不能聯網就讀取離線包。身份證讀卡器庫存要查,NFC卡也能發一批。」

  一名研究員詢問:「用身份證刷不就行了嗎?」

  徐安琪搖頭。

  「身份證可以做身份核驗,但不能把所有流程綁死在身份證上。建議發居民積分卡,卡里不存餘額,只存card id和簽名證書,後台映射用戶身份。」

  交大的胡教授補充:「卡里不存餘額很重要。存餘額就會有破解、盜刷的風險。卡只做個鑰匙,帳戶在伺服器里。」

  本地軟體公司的工程師有點為難,「那發卡量很大,一千多萬人,來不及。」

  趙聞川說:「不用那麼著急,最初需要試點,後面手機二維碼也可以覆蓋一部分。」

  梁嘉樹說:「二維碼要防止截屏倒賣。」

  趙聞川立刻說:「動態碼,三十秒刷新一次,本地區域網內生成。沒有網的地方,就用卡。二維碼里不放身份明文,只放token,token用SM2簽名,通信走TLS,敏感欄位庫內加密。」

  陳柏舟低聲笑了一下:「終於有人說加密問題了。」

  趙聞川指向他:「你負責密鑰體系。」

  陳柏舟臉上的笑容消失了,「我就知道。」

  會議室里響起一陣低低的笑聲。

  陳柏舟把筆放下,認真起來。

  「密鑰不能散落在各個業務伺服器上。我們要建立一套本地CA,簽發終端證書和服務證書。交易請求必須雙向TLS。終端丟失後,證書吊銷。核心簽名密鑰放HSM或者密碼機里,你們所這邊應該有設備。」

  趙聞川點頭:「有,之前項目用過。」

  「那就能做。」陳柏舟說,「積分發放、撤銷都要簽名。流水錶加hash鏈,每條記錄帶上一條hash,以防後期篡改。每天零點做快照,快照列印摘要,存到離線介質。」

  周蔓教授忍不住說:「列印摘要?」

  陳柏舟看她:「現在這個世界,紙質媒介還是很可靠的。」

  梁嘉樹拍了下桌子:「這個有古典美。」

  徐安琪翻了個白眼,「古典美歸古典美,接口也要美一點。」

  「庫存系統呢?」

  阿狸雲陳柏舟說:「商戶庫存先做一個簡易版。入庫、出庫。積分交易扣庫存,現金交易也要登記。後續接通WMS,第一版給超市一個Excel導入模板,別指望他們所有庫存系統都能打通。」

  梁嘉樹說:「數據分析可以我們來做。實時看各區的銷量、庫存消耗、異常交易、排隊壓力,就做監控大屏和預警。比如某個社區一小時內銷量異常,某個終端連續失敗,某個家庭多點購買衝突,可以直接預警標記」

  徐安琪看了他一眼:「你們的模型現在可推薦不了擦邊舞了。」

  會議室里又傳來大家的笑聲,

  趙聞川把白板翻到空白處,「分工。」

  所有人都低頭準備記。

  「電科所負責總體架構、機房、網絡安全、本地CA、核心密鑰。華威負責專用APN、終端接入、基站保障清單、CPE和POS適配。企鵝廠負責帳戶、交易、二維碼、扣費流程和前端收銀界面。阿狸負責資料庫、消息隊列、備份、帳本和對帳。字節負責風控排查、異常檢測和流量壓測。」

  他看向高校那邊。

  「交大負責規則引擎和身份合併算法,別讓業務代碼里寫一萬條if。工大負責終端離線包、安全策略和設備適配測試。習電負責通信鏈路測試、弱網環境算法性能優化,還有終端證書批量燒錄工具。」

  習電的研究生愣了一下:「證書批量燒錄工具也歸我們?」

  高昊拍了拍他肩膀,「年輕人,歡迎來到工程現場。」

  白板上很快寫滿了任務。

  趙聞川在最上面寫下時間表,「今晚二十四點,核心帳戶和交易接口要跑通。明天上午,我們要開展試點運行。明天下午,接入十個點位進行壓力測試。後天,全市重點區域上線運行第一版。」


  會議室里沒人說話。

  這個時間節點放在平時,足夠讓項目組被程式設計師們圍起來打。

  現在大家只能報以沉默。

  陳柏舟揉了揉有些發酸的眼睛,「需求凍結嗎?」

  趙聞川說:「技術需求今天凍結。政策規則可以通過配置表改,別讓他們每改一次額度,我們就得發一次版。」

  徐安琪忽然問:「居民端App做嗎?」

  趙聞川看向她:「你覺得呢?」

  徐安琪沉默一秒,「先做H5,掛在本地門戶。能查餘額、查消費記錄。App安裝太慢,應用商店也廢了一個一個安裝要花太多時間。」

  會議室外有人推門進來,送來一箱礦泉水和幾袋麵包。

  趙聞川拿起一袋,看了看生產日期,「現代食品庫存,吃一袋就少一袋。」

  梁嘉樹已經撕開包裝,「那我緬懷著歷史責任感吃。」

  高昊咬了一口麵包,含糊道:「說真的,以後的麵包生產日期怎麼寫,1860年嗎?」

  徐安琪看著他:「不是1970年1月1日就行」

  會議室里發出爆笑聲。

  大家陸續起身,任務已經被拆解,所有人開始忙碌起來。

  窗外天色慢慢暗下來。

  趙聞川站在白板前,盯著上面的板書不知道在想什麼,

  徐安琪抱著電腦從他旁邊經過,「趙工,別發呆了。接口文檔還等著你拍板呢。」

  趙聞川回過神,

  「走。」

  他堅定地說。


關閉
Δ