什么是架構
1、對系統進行有序化重構
2、分與合的過程
橫向的(水平) 水平分表,數據分到多個表里面,比如1000w數據 ,拆分成多個小表數據
縱向的(垂直) 列數比較多的表,拆分成多個小表存儲不通數據
大的系統 --> 拆分成很多個子系統,模塊,組件
架構內容
1、技術(基礎架構組) --> 對源碼改造,更加適合開發需求
2、應用架構(面向業務層次)
3、系統架構 (運維)
架構師具備的能力
1、管理能力,人員協調;
2、技術實力,技術深度和技術面的認識;
3、溝通表達能力
4、抽象思維
架構師要做的事情
1、業務場景分析:用例圖、流程圖、時序圖
2、技術的選型(開源)
3、技術規格說明書
4、線下架構峰會,擴寬你的你的眼界
架構演進(Java演變:jsp/servle --> ssh --> spring boot --> spring cloud)
1、用戶量、業務復雜度、數據量
2、





1、數據庫優化,sql
2、讀寫分離,讀和寫進入到不通數據庫(mycat,shardingjdbc) 封庫分表
3、搜索引擎 Elasticsearch ,Solr, Lucene
4、數據庫
數據庫
TIDB
PG
TDSql
OceanBase
緩存
MongoDB
Hbase
cassandra
redis
memcached
文件存儲
FASTDFS
OSS
COS
5、數據庫優化-拆分
水平拆分 水平分表,數據分到多個表里面,比如1000w數據 ,拆分成多個小表數據
垂直拆分 列數比較多的表,拆分成多個小表存儲不通數據
冷熱數據庫分離,
帶來的問題
跨表查詢,查詢的條件不是分片鍵的時候怎么辦?
分布式事物問題?
6、業務的垂直化拆分
電商服務 : 庫存,訂單,交易 服務拆分; 每一個服務都是獨立的單體架構
問題: 每個服務數據冗余
演變:把公共服務抽離出來, 庫存服務,訂單服務,交易服務
面相服務SOA: 解決信息孤島【數據不共享】、服務復用 問題 (面相服務SOA≈ 微服務架構)

