如何把應用從單機擴充套件到分布式

2021-09-24 22:12:41 字數 1616 閱讀 5549

目錄

第一版 單台伺服器應用

第二版 應用伺服器和資料庫伺服器分離 ​

第三版 應用伺服器集群 ​

第四版 負載均衡器 ​

第五版 資料庫伺服器集群 ​

第六版 搜尋引擎集群

第七版 快取伺服器

第八版 資料庫水平/垂直拆分

第九版 應用伺服器垂直拆分

第十版 soa服務(分布式架構)

本節會學習以下內容:

出現以下問題: 

由於流量越來越大出現伺服器效能問題。

對架構增加了一台伺服器,應用和資料庫分別部署到不同的伺服器上,對於開發和測試沒有任何影響,只需要應用伺服器新增乙個遠端呼叫資料庫伺服器的連線,有效的緩解了應用伺服器負載的壓力。 

出現以下問題: 

隨著請求流量得進一步增大出現應用伺服器效能問題。

流量請求得到緩解。 

應用伺服器集群後出現以下問題: 

1.需要使用session+cookie維護使用者 

2.如何做請求**(cdn,前端做負載均衡器)

1.負載均衡器優化了訪問請求在伺服器組之間的分配,消除了伺服器之間的負載不平衡,從而提高了系統的反應速度與總體效能; 

2.負載均衡器可以對伺服器的執行狀況進行監控,及時發現執行異常的伺服器,並將訪問請求轉移到其它可以正常工作的伺服器上,從而提高伺服器組的可靠性採用了負均衡器器以後,可以根據業務量的發展情況靈活增加伺服器,系統的擴充套件能力得到提高,同時簡化了管理。

負載均衡器之後出現以下問題: 

隨著流量的新增,資料庫伺服器有效能壓力,資料庫遇到瓶頸。

資料庫伺服器集群後出現以下問題: 

1.資料庫讀寫分離 

2.資料庫資料同步 

3.資料庫路由

搜尋引擎集群後出現以下問題: 

1.搜尋引擎的索引資料如何同步,實時增量or定時全量?

使用者量是沒有上限的 

快取、 限流、 降級 

注:架構到了第七版還不能算分布式架構,只能說是由多台伺服器組成的高可用的架構

目前將資料庫進行垂直拆分,還未進行資料庫水平拆分(比如將訂單表分庫分表就屬於水平拆分)

以**為例: 

user.taobao.com 

product.taobao.com 

order.taobao.com 

根據不同網域名稱請求訪問不同伺服器,如果涉及到使用者需要查詢商品或訂單,直接在使用者伺服器裡寫dao層查詢商品或訂單資料庫表。 

產生問題:應用伺服器互動呼叫問題。

從分布式分析引擎到分布式儲存

事因偶然,開始了apache storm原始碼的閱讀歷程,即而了解到apache spark一時風頭無兩,又一頭墜入到無比陌生的scala世界,開始了艱澀的spark原始碼閱讀之路。閱讀不是目的,用這些工具來解決實際中的問題才是根本,恰好由於通訊公司利潤下降,行業景氣度不如之前,人心思變,於是在沒做...

從分布式分析引擎到分布式儲存

事因偶然,開始了apache storm原始碼的閱讀歷程,即而了解到apache spark一時風頭無兩,又一頭墜入到無比陌生的scala世界,開始了艱澀的spark原始碼閱讀之路。閱讀不是目的,用這些工具來解決實際中的問題才是根本,恰好由於通訊公司利潤下降,行業景氣度不如之前,人心思變,於是在沒做...

從 分布式論壇 到 分布式資料庫

從 分布式論壇 到 分布式資料庫 如果有分布式資料庫,實現分布式論壇也許很容易,寫法與傳統的論壇系統完全一樣就行了 這裡說的 分布式 是一種鬆散的分布式,不像乙個機房裡多台伺服器協作組成乙個更大的邏輯伺服器 這些伺服器是穩定而且高速連線的 而這裡說的 分布式 是由一組普通的網際網路上的pc組成的,它...