A股行情
  • 上證指數---
  • 深證成指---
  • 創(chuàng)業(yè)板指---
  • 滬深300---
  • 中證500---
  • 科創(chuàng)50---
首頁 > 宏觀 > 正文

西安“一碼通”故障問題解析,IT專業(yè)人士給出這些建議

2021-12-27 21:29:45 21世紀經濟報道 21財經APP 畢華章

21世紀經濟報道記者畢華章 西安報道

西安抗疫仍在進行中,在廣泛要求48小時有效核酸政策發(fā)布以來,西安“一碼通”出現了系統(tǒng)故障。

具體故障包括,健康碼無法打開,頁面點擊二維碼后出現空白;核酸報告系統(tǒng)出現問題,結果無法顯示;恢復的過程中出現中國電信手機網絡可打開健康碼,而中國移動不可以等。

對于西安“一碼通”出現的故障問題,西安高新區(qū)一小區(qū)的10余位“一線大廠”技術咖對問題進行了探討與交流,從前端、后端、測試等方面,對可能出現的多類問題及原因予以分析及推測,并給出多項建議。

其中幾位人士接受了21世紀經濟報道記者采訪,對這些專業(yè)技術及行業(yè)術語進行了詳細解釋,便于更多業(yè)內外人士了解情況,促進“一碼通”正常運維及防疫保障工作。

21世紀經濟報道記者就此致電西安市大數據資源管理局多個業(yè)務部門,但電話無人接聽。

問題推測:性能過載、架構設計、容災備份

技術咖們經過討論認為,限流是主要問題之一。

市民在長時間無法刷出健康碼的情況下,多次退出刷新重試,新的流量到達服務器,導致服務器壓力變大、承受負載增加。他們認為,西安“一碼通”系統(tǒng)可能沒做好限流措施。

緊接著是服務器問題。無論是企業(yè)和個人在租用服務器的時候都會受到峰值承受限制,一旦超過服務器的承受能力,就會導致服務器癱瘓,應用程序暫停,網站無法訪問。造成服務器癱瘓的原因是在同一段時間內訪問人數多,造成高流量的突進,超出了服務器的承受范圍。這一點,與西安市大數據局局長劉軍在新聞發(fā)布會上給出的回答接近。

類似的推想還有性能過載問題及場景問題。他們認為,這是典型的性能過載場景,或許內因是數據庫瓶頸點以及網絡鏈接數瓶頸點,但外因都是過載導致。

他們分析,或許西安“一碼通”是個門戶,核酸等“卡片”的數據是從各子系統(tǒng)引過來的服務器宕機。

上班高峰期,市民共同訪問,導致服務器瞬時訪問流量飆升,數據庫性能跟不上,最終整個西安“一碼通”服務掛了,可能之前設計的時候沒有考慮過這種場景。

設計漏洞方面,也許沒有考慮高流量高負載的情況,導致測試不充分;產品設計未考慮千萬級的并發(fā)訪問,交付前未進行同等級的壓力測試。

此外,或許還涉及架構問題。

西安“一碼通”功能影響“核酸檢測”服務,說明模塊間從界面到數據調用互相影響,可能不是微前端、微服務架構。

西安高新區(qū)一小區(qū)業(yè)主、IT行業(yè)前端人員李女士在接受21世紀經濟報道記者采訪時表示,西安“一碼通”頁面與核酸檢測頁面是有關聯(lián)的,正常情況下這兩大業(yè)務已經很大?!耙淮a通”里面不僅承載了本身的數據,而且有核酸檢測數據。按道理來說,兩個模塊是不應該互相影響的,關聯(lián)性應該不是很高,其實可以分成兩個不同的模塊,分離開來降低它們之間的粘性。這樣做的好處是,兩塊互不影響。假如數據仍有關聯(lián),可以把關聯(lián)度降到最低,即使一個服務出現問題,另一個還能獨立運行。

技術咖們認為,界面上出現情況,可能意味著不僅僅是“一碼通”與核酸檢測這兩個模塊之間的問題,或許后端與前端的架構有問題,可能不是微前端、微服務架構,沒有做到很好的分離。

他們還探討了域名解析系統(tǒng)不同、容災備份不足等方面。例如,對于中國電信網絡信號可以打開,中國移動網絡信號無法打開的情況,這或是由于不同運營商依賴的DNS(域名解析)系統(tǒng)不同,由于西安“一碼通”系統(tǒng)為電信相關公司參與,因此DNS指向新的IIP生效最快。

他們認為,在目前國內外疫情仍然嚴峻的背景下,西安“一碼通”相關系統(tǒng)的容災備份建設仍不夠充分,存在未進行故障隔離和流控處理,運維預案和彈性伸縮能力不足等問題。

未來“一碼通”如何優(yōu)化完善?

技術咖們給出的產品建議是,進行業(yè)務剝離,將小程序內業(yè)務關聯(lián)度比較高的模塊獨立化。

在系統(tǒng)建議上,他們給出了快速響應短期建議和項目穩(wěn)定長期建議。

短期建議中,可以進行頁面優(yōu)化,友好提醒用戶耐心等待。當出現不能顯示查詢結果的時候,為避免公眾猜測,應當在頁面做出友好提示,而不是“繁忙、無響應”等。

同時,訪問節(jié)流,短時間內多次請求可做防抖機制。既然核酸結果是24小時(或更長或更短)內不變,建議可做緩存機制。24小時間隔后再次訪問強制刷新,接口可帶時間戳參數。

項目穩(wěn)定長期建議,則包括了更多的專業(yè)用語。例如數據模型,盡可能結構關系單一,快速響應回調;沉淀組件并復用,減少項目體積;建立中臺,減少直接請求后臺數據;崩潰預警,可讓相關開發(fā)人員快速上線響應等。

在系統(tǒng)設計方面,技術咖們給出的建議包括架構設計、云原生、中間件選型、分級管理、內容分發(fā)網絡緩存、網絡可用性等建議。

例如,以分級管理而言,IT業(yè)內人士、后端人員張遠(化名)對21世紀經濟報道記者介紹,分級管理方面,可以根據業(yè)務重要性進行分級管理,核心應用和服務優(yōu)先使用更好的硬件,在服務部署上進行必要的隔離,避免故障的連鎖反應。

“低優(yōu)先級的服務,可通過啟動不同的線程或部署在不同的虛擬機上進行隔離,而高優(yōu)先級的服務則需要部署在不同的物理機上?!睆堖h說。

再如安全提升方面,他建議,可以提升西安“一碼通”系統(tǒng)機房安全等級,以應對各種極端情況,“建議參考銀行一類業(yè)務系統(tǒng)建設標準。也可以關閉不用的端口,減少不必要的暴露?!?/p>

另外,在高可用設計方面,他們也給出了諸多專業(yè)建議。例如,數據冗余問題,以關系數據庫為例,可采取讀寫分離,極端故障可以進行主從切換實現故障恢復。

測試方面,建議添加高性能自動化測試、壓力測試,并且在發(fā)布前做預防機制。進行服務演練,經常開展各種應急演練、災備演練工作,提高問題處理效率及驗證災備系統(tǒng)可用性。

盡管具體原因運營方并未詳盡公布,但是技術咖們依然愿意對西安“一碼通”問題提出分析與建議,將各類可能的環(huán)節(jié)考慮周全,供業(yè)內外參考,為西安抗疫貢獻力量。