數據庫分層 提高性能mysql
應用分層 優化服務redis
Session共享
1:session複製
2:Session共享 統一存儲(把session數據放到redis sever獲取redis上的session)
3:無狀態存儲 例如:客戶端設置access_token (這個token是服務器加密後給客戶端 客戶端訪問服務器時 服務器解析token)存在安全問題spring
數據庫性能提高
1:讀寫分離 -> 讀多寫少的場景
2: 分庫分表 -> 歷史庫
sql
數據如何同步(mysql數據庫自帶的 -master /slave)數據庫
應用如何對數據路由 mycat /sharding-jdbcapache
特性問題
搜索引擎: lucence,solr,elasticsearch(商業服務)
索引 ->
全量構建 ->第一次構建瀏覽器
增量構建 - >增量同步緩存
非實時構建(異步/定時任務)安全
nosql存儲(非關係型數據庫)或其餘存儲方式
hbase,mongoDB,redis;...服務器
瀏覽器緩存,應用緩存,數據庫緩存,cpu緩存...
文件存儲 OSS,HDFS...
分佈式數據庫 (經過分表分庫實現數據庫拆分)
1:分佈式事務問題 -> 分佈式數據一致性問題
spring cloud alibaba -> fescar(seata)/RocketMQ - >分佈式事務解決方案
遠程調用
dubbo,thinft...
高可用方案
1:單點故障
多機房部署
基於當前用戶所在的位置去找一個最近的機房進行數據傳輸
監控
1:鏈路監控 zipkin。tracelID
2:硬件監控:cpu,內存,磁盤
全鏈路壓力測試,單節點壓力測試,loadrunner,jemeter,apache ad工具
SOA->微服務->serviceMesh 演變