天天看點

Dubbo之——Dubbo服務叢集

轉載請注明出處:http://blog.csdn.net/l1028386804/article/details/72354649

 叢集的目的:實作高可用,容錯功能,叢集的伺服器不要放在一台實體機,要分散節點,才能實作高可用,高容錯性能,一台提供者挂了,還有其他提供者,保證系統正常、穩定運作。

一、環境準備

edu-provider-01(192.168.1.121)

edu-provider-02(192.168.1.122)

二、dubbo服務叢集

使用者服務:pay-service-user

交易服務:pay-service-trade

我在121,122伺服器同時啟動這兩個服務

在dubboadmin管理控制台中可以檢視到兩台機器的服務都注冊成功

Dubbo之——Dubbo服務叢集

這裡我可以查詢交易資訊

Dubbo之——Dubbo服務叢集

我先關掉121的交易服務

這裡我依舊可以查詢交易資訊

我再關掉122的交易服務

這裡我查詢交易資訊就會出現異常

Dubbo之——Dubbo服務叢集

我在121服務上再開啟交易服務,又可以查詢交易資訊了

三、dubbo服務容錯配置-叢集容錯模式

标簽:

<dubbo:service>提供方配置标簽,粒度粗

<dubbo:service>:服務釋出标簽,例,在這個上配置容錯,粒度細

在這個上配置容錯,粒度細

屬性:cluster 類型:string

是否必填:可選 預設值:failover

作用:性能調優 叢集方式:可選:failover/failfast/failsafe/failback/forking

1、failover cluster

失敗自動切換,當出現失敗,重試其它伺服器。(預設) 通常用于讀操作,但重試會帶來更長延遲。 可通過retries="2"來設定重試次數(不含第一次)。

2、failfast cluster

快速失敗,隻發起一次調用,失敗立即報錯。 通常用于非幂等性的寫操作,比如新增記錄。

3.failsafe cluster

失敗安全,出現異常時,直接忽略,通常 用于寫入審計日志等操作

4.failback cluster

失敗自動恢複,背景記錄失敗請求,定時重發,通常用于消息通知操作。

5.forking cluster

并行調用多個服務,隻要一個成功即傳回,通常用于實時要求較高的讀操作,但需要浪費更多的伺服器資源。可通過forks="2"來設定最大并發數。

在實際項目中,生産環境中,我們用failover模式時可以這樣設計服務接口,遵循接口隔離原則 ,查詢服務與寫操作服務隔離,

查詢接口我們可以配置retries="2"

在寫操作接口我們配置retries="0" ,如果不設定為0, 逾時,會重新連接配接,會出現重複寫的情況,是以使用failover模式時,我們要進行讀寫操作接口隔離,且寫操作接口retries=0

Dubbo之——Dubbo服務叢集

繼續閱讀