Dubbo服務集群 服務啟動依賴檢查

2022-03-26 14:54:56 字數 2725 閱讀 2097

一、什麼叫dubbo服務集群

指把同乙個服務部署到多台機器,然後通過dubbo服務集群的容錯配置實現一台機器的服務掛掉之後自動切換到另外的一台機器

二、dubbo服務集群容錯配置——集群容錯模式

標籤:、、、

屬性:cluster

型別:string

是否必填:可選

預設值:failover

作用:效能調優

集群方式:可選:failover/failfast/failsafe/failback/forking

相容性:2.0.5以上版本

1、failover cluster(dubbo預設配置)

失敗自動切換,當出現失敗,重試其它伺服器(預設)。

通常用於讀操作,但重試會帶來更長延遲

可通過retries="2"來設定重試次數(不含第一次),retries的值是根據你的服務部署了多少臺機器來設定的,比如你的同乙個服務在三颱機器上都部署了,那麼retries的值就設定為2.

1.1 可以在服務提供方配置,不配置時也是預設的如下配置

1.2  可以在服務消費方配置,不配置時也是預設的如下配置

cluster="failover" 

retries="2" />

1.3 可以在消費方指定呼叫某個方法失敗時的重試呼叫次數

2、failfast cluster

快速失敗,只發起一次呼叫,失敗立即報錯。

通常用於非冪等性的寫操作,比如新增記錄

2.1 可以在服務提供方配置

2.2  可以在服務消費方配置

cluster="failfast" 

/>

3、failsafe cluster

失敗安全,出現異常時,直接忽略。

通常用於寫入審計日誌等操作

3.1 可以在服務提供方配置

3.2  可以在服務消費方配置

cluster=""failsafe"" 

/>

4、failback cluster

失敗自動恢復,後台記錄失敗請求,定時重發。

通常用於訊息通知操作

4.1 可以在服務提供方配置

4.2  可以在服務消費方配置

cluster="failback" 

/>

5、forking cluster

並行呼叫多個伺服器,只要乙個成功即返回。

通常用於實時性要求較高的讀操作,但需要浪費更多服務資源

可通過forks="2"來設定最大並行數。

5.1 可以在服務提供方配置

5.2  可以在服務消費方配置

cluster="forking" 

/>

三、集群容錯配置的選擇

一般情況下failover(讀操作)和failfast(寫操作)就可以滿足需求;failover集群容錯的retries的屬性值改為"0"時等價於failfast

四、服務啟動依賴檢查

1. 啟動依賴檢查的作用

dubbo 缺省會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止 spring 初始化完成,以便上線時,能及早發現問題,預設check="true"

2. 可以通過check="false"關閉檢查,那麼什麼時候不需要啟動依賴檢查呢

2.1 測試時,有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動。

2.2 如果你的 spring 容器是懶載入的,或者通過 api 程式設計延遲引用服務,請關閉 check,否則服務臨時不可用時,會丟擲異常,拿到 null 引用,如果check="false",總是會返回引用,當服務恢復時,能自動連上。

3. 通過 spring 配置依賴檢查

3.1 關閉某個服務的啟動時檢查 (沒有提供者時報錯):

3.2 關閉所有服務的啟動時檢查 (沒有提供者時報錯):

3.3 關閉註冊中心啟動時檢查 (註冊訂閱失敗時報錯,一般不關閉):

4. 通過 dubbo.properties

dubbo.reference.com.foo.barservice.check=false

dubbo.reference.check=false

dubbo.consumer.check=false

dubbo.registry.check=false

說明:dubbo.reference.check=false,強制改變所有 reference 的 check 值,就算配置中有宣告,也會被覆蓋。

dubbo.consumer.check=false,是設定 check 的預設值,如果配置中有顯式的宣告,如:,不會受影響。

dubbo.registry.check=false,前面兩個都是指訂閱成功,但提供者列表是否為空是否報錯,如果註冊訂閱失敗時,也允許啟動,需使用此選項,將在後台定時重試。

dubbo服務集群

容錯配置 集權容錯模式 1 failover cluster 失敗自動切換,當出現失敗,重試其他伺服器。通常用於讀操作,但重試會帶來更長延遲。可通過retries 2來設定重試次數 不含第一次 如果沒有配置,預設使用這種方式,並且重試次數是2 retries 2 或者retries 2 或者 nam...

dubbo服務集群配置

一 基本概念 dubbo provider dubbo consumber 二 工程框架 edu service user 在其src main resources sping中,有乙個dubbo provider.xml檔案,其中的配置如下 edu web user 在其src main reso...

Dubbo服務啟動方式

啟動dubbo服務有2個方式 1 通過xml檔案配置 2 通過註解來實現,類似於spring。1 通過註解方式的服務實現類 package com.dubbo.provide import com.alibaba.dubbo.config.annotation.service service pub...