01分散式基礎(一)-分散式架構概述
阿新 • • 發佈:2018-11-19
一、分散式架構概述
什麼是分散式
一個業務拆分成多個業務模組,部署在不同的伺服器裡面
- 任務分解
- 節點通訊
分散式和叢集的關係
電商平臺: 使用者、 商品、訂單、 交易
分散式: 一個業務拆分成多個子系統,部署在不同的伺服器上
叢集: 同一個業務,部署在多個伺服器上
計算機的發展歷史
計算機的發展歷史
- 1946 情人節
- 1964 IBM SYSTEM/360
超強的計算能力、 高可靠性 - X86 CPU
- RISC CPU 小型機
軟體架構往集中式發展, 成為當時軟體架構的主流
分散式架構的發展
- 時機成熟了
PC機的效能不斷提升 - 企業必須要做
去IOE
IBM小型機 、 Oracle Rac、 EMC儲存裝置
PC mysql mariadb
2013年5月17號,最後一臺IMB小型機下線
單機計算機的架構->分散式計算機架構
架構的發展演變過程
lamp
BAT
什麼是大型網站
- 訪問量(tps、qps)
- 資料量(儲存資料量)
電商平臺的發展
使用者、 商品、訂單
容器: tomcat ;jsp/servlet
資料庫儲存: mysql
網路層面的知識:tcp/udp
第一版應用
第二版 單擊負載越來越高,資料庫伺服器和應用伺服器分離
第三版 應用伺服器做叢集
叢集裡面會有一些問題:
- session共享的問題
- 如何做請求轉發:CDN、前端的負載均衡器;
第四版 資料庫進行讀寫分離
涉及的三個問題
- 資料庫的讀寫分離怎麼做?
- 資料庫的同步要怎麼做?
- 資料庫的路由要怎麼做?-mycat
第五版 解決搜尋帶來的問題
電商平臺操作最多就是搜尋商品—用搜索引擎,搜尋引擎要做叢集,
應用搜索引擎也會帶來問題:
- 搜尋引擎的索引資料怎麼去做同步?實時增量同步?還是定時全量同步?----具體怎麼做不是固定的,還是要去看業務
第六版 解決訪問量持續增高帶來的問題
使用者是沒有上限的,我們可以這樣來做,引入快取機制
- 快取
- 限流
- 降級
第七版:資料庫的水平/垂直拆分
第八版 應用拆分:
架構圖示
還有監控,資料採集、日誌分析等
資料採集:ELK,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成
解決session跨域共享問題
- session sticky
- session application
- session集中儲存:儲存db,儲存在快取伺服器(redis)
- cookie(主流)
access_token(userid/token/timestamp)
SOA架構和微服務的區別:訊息匯流排的不同