關於分布式系統的連環炮一

2022-09-18 16:57:11 字數 2338 閱讀 5539

關於分布式系統的連環炮

為什麼要進行系統拆分?拆分後不用dubbo可以嗎?

系統越來越複雜,維護起來非常麻煩,各種衝突,各種合併,非常耗費時間,之間依賴複雜,異常處理起來非常麻煩,各種痛苦

拆分後每個服務都是乙個單獨的模組,乙個人維護乙個服務,每個機器部署乙個服務, 避免了很多衝突,**清爽

可以,但是我們如果呼叫其他服務的介面時會有很多問題需要考慮,負載均衡,超時重試等等一系列問題,dubbo是乙個rpc框架,就是本地介面

進行呼叫,底層會幫我們處理負載均衡,服務上下線自動感知,超時重試等,不需要我們自己去考慮,直接使用就可以了

說一下dubbo的工作原理?註冊中心掛了可以繼續通訊嗎?說說一次rpc請求流程?

dubbo一共分為10層,provider層,如果乙個服務a部署在三颱機器上,每台機器有各自的ip,服務會將自己的資訊在註冊中心進行註冊,這樣註冊中心就有了這個服務的註冊資訊。

這時乙個使用者請求傳送過來,然後消費者會連線註冊中心拉取自己需要呼叫的服務,消費者就會獲取到註冊中心裡需要呼叫的服務的資訊,這時消費者和服務提供者都會有dubbo

生成的**,消費者的**通過負載均衡找到服務a其中的個**獲取需要的資料,服務a返回資料給自己的**,服務a的**在返回給消費者的**,然後返回給消費者,最後返回

給使用者,這樣就是乙個dubbo的執行流程。

如果註冊中心掛了還是可以繼續通訊,第一次從註冊中心中獲取服務後,他會在本地快取服務的註冊資訊,所以還是可以繼續通訊的

dubbo支援哪些網路協議以及序列化協議

dubbo使用長連線dubbo協議,單一長連線,nio非同步通訊,傳輸資料量小,但是併發量高, 支援hessian,j**a二進位制序列化,json,soap文字序列化多種序列化協議,但是hessian是預設的序列化協議。

dubbo負載均衡策略(1

)dubbo

負載均衡策略1)

random loadbalance

預設情況下,

dubbo

是random load balance

隨機呼叫實現負載均衡,可以對

provider

不同例項設定不同的權重,會按照權重來負載均衡,權重越大分配流量越高,一般就用這個預設的就可以了。2)

roundrobin loadbalance

還有roundrobin loadbalance

,這個的話預設就是均勻地將流量打到各個機器上去,但是如果各個機器的效能不一樣,容易導致效能差的機器負載過高。所以此時需要調整權重,讓效能差的機器承載權重小一些,流量少一些。

跟運維同學申請機器,有的時候,我們運氣,正好公司資源比較充足,剛剛有一批熱氣騰騰,剛剛做好的一批虛擬機器新鮮出爐,配置都比較高。8核

+16g

,機器,

2臺。過了一段時間,我感覺

2臺機器有點不太夠,我去找運維同學,哥兒們,你能不能再給我

1臺機器,4核

+8g的機器。我還是得要。3)

leastactive loadbalance

這個就是自動感知一下,如果某個機器效能越差,那麼接收的請求越少,越不活躍,此時就會給不活躍的效能差的機器更少的請求4)

consistanthash loadbalance

一致性hash

演算法,相同引數的請求一定分發到乙個

provider

上去,provider

掛掉的時候,會基於虛擬節點均勻分配剩餘的流量,抖動不會太大。如果你需要的不是隨機負載均衡,是要一類請求都到乙個節點,那就走這個一致性

hash

策略。(2)

dubbo

集群容錯策略1)

failover cluster

模式失敗自動切換,自動重試其他機器,預設就是這個,常見於讀操作

一次呼叫失敗就立即失敗,常見於寫操作3)

failsafe cluster

模式出現異常時忽略掉,常用於不重要的介面呼叫,比如記錄日誌4)

failbackc cluster

模式失敗了後台自動記錄請求,然後定時重發,比較適合於寫訊息佇列這種5)

forking cluster

並行呼叫多個

provider

,只要乙個成功就立即返回6)

broadcacst cluster

逐個呼叫所有的

provider(3

)dubbo

動態**策略

分布式 分布式系統的設計

在計算機領域,當單機效能達到瓶頸時,一般有兩種方式解決效能問題 而分布式系統的設計說白了就是 如何合理將乙個系統拆分成多個子系統部署到不同機器上。講設計方法前,先介紹分布式系統的特性 1 分布性 空間中隨機分布。這些計算機可以分布在不同的機房,不同的城市,甚至不同的國家。2 對等性 分布式系統中的計...

分布式系統中的分布式事務

分布式事務中可以借助mq訊息系統來進行事務控制,這一點與可靠訊息最終一致方案一樣。看來mq中介軟體確實在乙個分布式系統架構中,扮演者重要的角色。最大努力通知方案是比較簡單的分布式事務方案,它本質上就是通過定期校對,實現資料一致性。中介軟體如何保證訊息的一致性 問題的問法多種多樣,怎麼保證兩個伺服器的...

分布式系統

分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...