1. 程式人生 > >Dubbo實戰介紹4

Dubbo實戰介紹4

叢集容錯機制的原理

   假如我們使用的單機模式的dubbo服務,消費者發出一次請求,恰好這次由於網路問題呼叫失敗,我們可以配置重試策略,可能第二次呼叫時成功的。但是假如假如提供者發生故障,那麼消費者再怎麼重試呼叫都是失敗的,所以我們採取叢集容錯模式,這樣假如單個服務節點故障無法提供服務,則可以根據配置的叢集容錯模式,呼叫其他的服務節點。這樣就提高了服務的可用性。

叢集容錯模式的配置方式

   提供者配置

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="failover"/>

消費者配置

<dubbo:reference id="testService" interface="com.yang.test.api.TestService" cluster="failover" />

6種叢集容錯模式

1、Failover

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="failover" retries="2"/>

   是dubbo預設的模式,在呼叫失敗時,會自動切換嘗試呼叫其他節點的服務,一些冪等操作可以使用該模式,例如讀操作,因為每次呼叫的副作用是一樣的,所以可以選擇自動切換重新呼叫。可以通過retries屬性設定重試次數(不包含第一次)

2、Failfase

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="failfast"/>

   又叫快速失敗模式,呼叫只執行一次,若失敗則立即報錯,這種操作適用於非冪等操作,比如資料庫的寫操作,如果失敗了就應該直接失敗,不需要重試。

3、Failsafe   

 <dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="failsafe"/>

   又叫失敗安全模式,如果呼叫失敗,則直接忽略失敗的呼叫,記錄失敗的呼叫到日誌中,以便後續審計。

4、Failback

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="failback"/>

     失敗後自動恢復,後臺記錄失敗的請求,定時重發 通常用於訊息通知的操作。

5、Forking

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="forking/>

   並行呼叫多個伺服器,只要一個成功便返回,通常用於實時性要求高的操作,但需要浪費更多的服務資源,可以通過forks屬性設定最大的並行數。例如(forks="2")

6、Broadcast

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" cluster="broadcast" />

   廣播呼叫所有提供者,逐個呼叫,任意一臺報錯則報錯,通常用於通知所有提供者更新快取或日誌等本地資源資訊。

叢集的負載均衡

   Dubbo內建了4種負載均衡策略,隨機(Random),輪循(RoundRobin),最少活躍數(LeastActive),一致性Hash(ConisitentHash)。

   叢集的負載均衡可以介面級別進行配置

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie" loadbalance="foundRobin" />

可以在方法級別上配置

<dubbo:service interface="com.yang.test.api.TestService" ref="testServcie">
     <dubbo:method name="sayHello" loadbalance="roundrobin"/>
</dubbo:service>

四種負載均衡策略

   隨機模式:隨機,指按照權重設計隨機概率

   輪詢模式:即按照公約後的權重設定輪詢比率,該模式存在響應慢的提供者會累積請求,比如兩臺伺服器,第二臺很慢,但是沒掛掉。那請求就會卡在那裡,久而久之,左右的請求就會卡在第二臺上面。

   最少活躍數呼叫:只相應慢 提供者收到更少 請求的一種呼叫方式,如果活躍數相同的則隨機,活躍數指調動前後的計數差,而相應越慢的提供者呼叫前後的計數差越大。

   一致性Hash:指帶有相同引數的請求總會被髮送到同一個提供者。在某臺提供者掛掉時候,原本發往這臺伺服器的請求會平攤到其他的提供者上面。   

相關推薦

Dubbo實戰介紹4

叢集容錯機制的原理    假如我們使用的單機模式的dubbo服務,消費者發出一次請求,恰好這次由於網路問題呼叫失敗,我們可以配置重試策略,可能第二次呼叫時成功的。但是假如假如提供者發生故障,那麼消費者再怎麼重試呼叫都是失敗的,所以我們採取叢集容錯模式,這樣假如單個服務節點故

Dubbo實戰介紹1

dubbo的四種配置方式    dubbo的配置主要分為三大類,服務發現,服務治理和效能調優    服務發現類:表示該配置用於服務的註冊於發現,目的是讓消費者找到生產者    服務治理類:表示該配置用於治理服務間的關係,或為開發測試提供便利條件    效能調優類:表示

Dubbo實戰介紹2

註冊中心 dubbo支援多註冊中心,不僅支援多種形式的註冊中心,還支援向多個註冊中心註冊。目前dubbo支援的註冊中心有如下四種 Multicast註冊中心    該註冊中心不需要啟動任何中心節點,只要廣播地址一樣,就可以互相發現。組播受網路結果影響,只適合小規模的應用

Netty深入分析與Dubbo實戰解析(一)——網路程式設計模型介紹

Linux網路程式設計模型介紹 Linux核心將所有外部裝置都看作一個檔案來操作,對一個檔案的讀寫操作會呼叫核心提供的系統命令,返回一個file descriptor(fd,檔案描述符)。而對一個socket的讀寫也會有相應的描述符。描述符就是一個數字,它指向核心中的一個結構體(檔案路徑

APP開發實戰46-設計模式介紹4

13.3.9備忘錄模式 備忘錄模式在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到儲存的狀態。 此模式的使用場景: (1)需要儲存一個物件在某一時刻的狀態或部分狀態。 (2)如果用一個介面來讓其他物件得到這些狀態,將會暴

dubbo 2.5.4-SNAPSHOT 源碼編譯

編譯 sna 依賴 version 問題 xml文件 sel master test 一、從 https://github.com/alibaba/dubbo 下載dubbo源代碼,我下載的version是2.5.4-SNAPSHOT 二、解壓到D:\project\

轉載:java分布式服務框架Dubbo介紹與使用

應用 輸入流 tro odin 測試 失敗 bat provide 建議 1. Dubbo是什麽? Dubbo是一個分布式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需

InnoDB存儲引擎介紹-(4)Checkpoint機制一

water dirty 其他 根據 發生 相關 太多的 性能 會有 檢查點的工作機制: innodb會自動維護一個檢查點的機制,叫做 fuzzy checkpointing(當然sharp checkpoint也是檢查點之一),fuzzy checkpointing就是將b

[dubbo實戰] dubbo+zookeeper偽集群搭建

view 中修改 back int address 註冊中心 weight rep clipboard zookeeper作為註冊中心,服務器和客戶端都要訪問,如果有大量的並發,肯定會有等待。所以可以通過zookeeper集群解決。 一、為什麽需要zookeeper呢?

ssh批量管理分發項目實戰介紹與實踐

linuxssh認證類型:基於口令的安全驗證,批量管理?expect,pssh,sshpassm01機器(鑰匙)私鑰被管理機器(鎖)公鑰 m01nfs01backupweb011、在上面4臺機器上面操作:創建用戶及密碼useradd oldgirlecho 123456|passwd --stdin

Hadoop介紹-4.Hadoop中NameNode、DataNode、Secondary、NameNode、JobTracker TaskTracker

參數 最大的 分布式文件 配置參數 alt https 編輯 進程通信 技術 Hadoop是一個能夠對大量數據進行分布式處理的軟體框架,實現了Google的MapReduce編程模型和框架,能夠把應用程式分割成許多的 小的工作單元,並把這些單元放到任何集群節點上執行。在Ma

企業實戰4)-實現基於Haproxy負載均衡集群的電子商務網站架構

haproxy keepalived 企業實戰:逐步實現企業各種情景下的需求企業情景四:隨著公司業務的發展,公司負載均衡服務已經實現四層負載均衡,但業務的復雜程度提升,公司要求把mobile手機站點作為單獨的服務提供,不在和pc站點一起提供服務,此時需要做7層規則負載均衡,運維總監要求,能否用一種服務

4、Django實戰4天:xadmin快速搭建後臺管理系統

blog true highlight 我們 訪問 min 自動 att 後臺 Django默認為我們提供了後臺管理系統admin, urls.py中配置的第一條就是訪問後臺管理系統admin的 urlpatterns = [ url(r‘^admin/‘,

tensorflow函數介紹(4)

bsp 過程 print span pan 介紹 整數 保存 出隊 隊列的實現: import tensorflow as tf q=tf.FIFOQueue(2,‘int32‘) #創建一個先進先出隊列,指定隊列中最多可以保存兩個元素,並指定類型為整數。 init

實戰作業4,實驗環境下Linux主機之間實現跨網段通信

linux linux路由配置 centos linux學習 更多內容請點擊:Linux學習從入門到打死也不放棄,完全筆記整理(持續更新,求收藏,求點贊~~~~) http://blog.51cto.com/13683480/2095439實驗目標: 用vmware多臺虛擬機模擬

DUBBO 詳細介紹

異常 moni 配置 watermark 級別 js框架 images 匯報 開發 摘要: 主要核心部件: Remoting: 網絡通信框架,實現了 sync-over-async 和 request-response 消息機制. RPC: 一個遠程過程調用的抽象,支持負載

Dubbo詳細介紹

比較 采樣 取代 pro log 演進 計算 遠程 最新 1 Dubbo介紹 隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。 單一應用架構 當網站流量很小時,只需一個

發布Dubbo服務介紹

say address oca nis except providers 現在 end 我們 我們現在來學習下發布Dubbo服務,主要參考dubbo開發包裏的demo源碼;由淺入深的講解下這個小demo; 首先創建一個maven項目dubbo-demo-provider

用python介紹4種常用的單鏈表翻轉的方法

這裡給出了4種4種常用的單鏈表翻轉的方法,分別是: 開闢輔助陣列,新建表頭反轉,就地反轉,遞迴反轉 # -*- coding: utf-8 -*- ''' 連結串列逆序 ''' class ListNode: def __init__(self,x): self.va

Spring Boot實戰系列(4)統一異常處理

專案開發中保證零異常似乎是不可能的,不論是系統異常還是程式本身的編碼問題造成的異常資訊都要以一種約定的資料結構返回,友好的處理方式在前後端分離模式下(後端提供API介面給到前端)能大大增加大家的溝通、工作效率。基於Spring Boot進行異常統一處理,本文中主要用到@ControllerAdvice註