架構設計理解(一)

個人學習資源免費分享網站:http://xiaocaoshare.com/

1.關於單機架構、集羣架構、分佈式架構理解:

單機架構:所有的代碼都寫在一個項目中,項目部署在一臺服務器上

集羣架構:就是單機複製幾份,一起組成的就是集羣。集羣中每臺服務器就叫做這個集羣的一個節點,所有節點構成了一個集羣。                    每個節點都提供相同的服務

集羣的好處:系統易於擴展。但是,當業務發展到一定程度的時候,會產生一個問題——無論怎麼增加節點,整個集羣性能的提升效果並不明顯了。這時候,就需要使用微服務結構了

負載均衡服務器作用:主要解決用戶的請求,交給哪個節點進行處理。(最好交給負載較小的節點進行處理)

負載均衡策略:

1)輪詢(默認)

缺點:不會考慮到每臺服務器的處理能力

2)權重

 注意 權重這種策略是根據權重的比例進行負載,是這樣的一個概率,而不是百分百按比例分配。

優點:考慮了每臺服務器處理能力的不同,用的最多.

3)ip_hash

優點:能實現同一個用戶訪問同一個服務器,解決了分佈式session問題
缺點:ip hash 負載均衡也是不平均的,可能不會起到很好的效果。

4)url hash(第三方:需要配第三方插件)

優點:能實現同一個服務(url)訪問同一個服務器
缺點:分配請求不平均,起不到負載均衡的功能,還是一個url會有大量流量.

5)fair(第三方)

優點:根據後端服務器的響應時間分佈請求,響應時間短的優先分配

分佈式架構:將一個完整的系統,按照業務功能,拆分成一個個獨立的子系統。在分佈式結構中,每個子系統就被稱爲“服務”。這些子系統能夠獨立運行在web容器中,它們之間通過RPC方式通信。

從單機結構到集羣結構,業務代碼基本不需要作任何修改,工程師要做的僅僅是多部署幾臺服務器,每臺服務器上運行相同的代碼就行了。但是,從集羣結構演進到微服務結構,之前的那套代碼就需要發生較大的改動。所以對於新系統,系統設計之初就採用微服務架構,這樣後期運維的成本更低。但如果一套老系統需要升級成微服務結構的話,那就得對代碼大動干戈了。所以,對於老系統而言,究竟是繼續保持集羣模式,還是升級成微服務架構,這需要架構師深思熟慮、權衡投入產出比。

分佈式架構的特點:

  • 系統之間的耦合度大大降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。
  • 系統之間的耦合度降低,從而系統更易於擴展,可以針對性地擴展某些服務。假設這個商城要搞一次大促,下單量可能會大大提升,因此可以針對性地提升訂單系統、產品系統的節點數量,而對於後臺管理系統、數據分析系統而言,節點數量維持原有水平即可。
  • 服務的複用性更高。比如,將用戶系統作爲單獨的服務後,該公司所有的產品都可以使用該系統作爲用戶系統,無需重複開發

區別聯繫:

1)集羣主要的使用場景是爲了分擔請求的壓力,分佈式的應用場景是單臺機器已經無法滿足性能的要求

2)分佈式是指多個系統協同合作完成一個特定任務的系統。分佈式的主要工作是分解任務,將職能拆解

3)集羣主要是簡單加機器解決問題,對於問題本身不做任何分解

 

將一套系統拆分成不同子系統部署在不同服務器上,這叫分佈式
然後部署多個相同的子系統在不同的服務器上,這叫集羣
部署在不同服務器上的同一個子系統,叫做負載均衡

分佈式和微服務的區別:

微服務是架構設計方式,分佈式是系統部署方式

微服務的設計是爲了不因爲某個模塊的升級和BUG影響現有的系統業務。微服務與分佈式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。

分佈式屬於微服務

 

2.微服務、SpringBoot區別和聯繫

微服務就是將一個系統按照功能模塊進行劃分,每個功能獨立打包部署在web容器裏面,每個功能成爲一個服務,服務直接使用SpringCloud或Dubbo遠程調用協議進行服務間調用

springboot是一個快速搭建應用的框架,不是微服務

3.分佈式事務和分佈式鎖

分佈式事務:當遇到複雜業務調用時,可能會出現跨庫多資源(一個事務管理器,多個資源)/多服務調用(多個事務管理器,多個資源),期望全部成功或失敗回滾,這就是分佈式事務,用以保證“操作多個隔離資源的數據一致性”。

分佈式鎖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章