架構設計的方法

架構分爲垂直水平擴展,垂直擴展是scale up,性能增加有限;水平擴展是scale out,理論上可以性能無限

  • N+1設計:系統中的每個組件都應做到沒有單點故障,可使用主備或者使用keepalived利用虛擬IP來保活;

  • 回滾設計:確保系統可以向前兼容(Go語言每次發版都是向前兼容的,可以升級版本的時候,減少改動),在系統升級時應能有辦法回滾版本;

  • 禁用設計:應該提供控制具體功能是否可用的配置,在系統出現故障時能夠快速下線功能;

  • 監控設計:在設計階段就要考慮監控的手段;

  • 多活數據中心設計:若系統需要極高的高可用,應考慮在多地實施數據中心進行多活,至少在一個機房斷電的情況下系統依然可用;

  • 採用成熟的技術:剛開發的或開源的技術往往存在很多隱藏的bug,出了問題沒有商業支持可能會是一個災難;

  • 資源隔離設計:應避免單一業務佔用全部資源;

  • 架構應能水平擴展:系統只有做到能水平擴展,纔能有效避免瓶頸問題;

  • 非核心則購買:非核心功能若需要佔用大量的研發資源才能解決,則考慮購買成熟的產品;

  • 使用商用硬件:商用硬件能有效降低硬件故障的機率;

  • 快速迭代:系統應該快速開發小功能模塊,儘快上線進行驗證,早日發現問題大大降低系統交付的風險;

  • 無狀態設計:服務接口應該做成無狀態的,當前接口的訪問不依賴於接口上次訪問的狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章