1、性能
1)單機
受限于主機的CPU、網絡、磁盤讀寫速度等影響
在多線程的互斥性、并發中的同步數據狀態等;
擴展:硬件資源、增大線程池
2)集群
微服務化拆分,導致調用鏈過長,網絡傳輸的消耗過多。
集群下的任務分發
分布式下的任務拆分、合并
擴展:服務、主機的水平擴展
常見的系統性能列表:
1、Nginx 負載均衡 3萬
2、LVS 十萬級
3、F5 百萬級
4、Memcache 讀寫TPS 5W
5、Redis 5-10萬
6、kafka百萬級,
7、zookeeper寫入讀取2萬以上
8、http請求訪問大概在2萬左右
9、Tomcat 2000左右并發;最大連接數為200?
10、RocketMQ 10WQPS
2、高可用
1)計算高可用
冗余:通過水平擴展計算節點,每個節點都是無狀態,從而達到分攤任務的目的
2)存儲高可用
由于網絡延遲、主機故障等問題,導致數據產生最終一致性問題。
主備模式:主節點宕機會導致不一致
雙主模式:要求同步雙寫主節點
獨裁:一主多從,要求從節點向同一個主節點發起請求,由主節點決策,典型代表有Zookeeper
協商:由多數投票通過,設立主節點。其他節點作為備節點
民主模式:各節點都參與投票,獲得多數票的作為決策。存在腦裂問題(要求多數票必須大于總節點的一半以上)
3、可擴展
1)成功預測變化
多數據源的兼容、本地存儲/網絡存儲/分布式存儲、國產化服務器兼容等
2)完美封裝變化
分解 變化層、穩定層,雙方對外暴露接口,提供調用
構建抽象層、實現層
參考裝飾器模式
- 抽象構件(Component)角色:定義一個抽象接口以規范準備接收附加責任的對象。
- 具體構件(ConcreteComponent)角色:實現抽象構件,通過裝飾角色為其添加一些職責。
- 抽象裝飾(Decorator)角色:繼承抽象構件,并包含具體構件的實例,可以通過其子類擴展具體構件的功能。
- 具體裝飾(ConcreteDecorator)角色:實現抽象裝飾的相關方法,并給具體構件對象添加附加的責任。
4、低成本
成本與高可用、性能成相反作用,以附加的約束條件,作為備選考慮
5、安全性
功能安全:XSS、SQL注入攻擊、CSRF、DDos攻擊等
架構安全:地址白名單、訪問鑒權、數據/權限分組隔離、防火墻等
6、規模化
量變引起質變,大規模部署引起的運維、監控復雜度不斷增加
大數據治理