1. 程式人生 > >DUBBO叢集容錯與負載均衡

DUBBO叢集容錯與負載均衡

dubbo有良好的叢集方案以及負載策略。仔細想了一下,叢集容錯與負載均衡還是要總結在一起,畢竟負載均衡是基於叢集容錯的。

dubbo叢集容錯

在叢集呼叫失敗時,dubbo提供了多種容錯方案,預設方案為failover。dubbo自帶的叢集方案有六種,基本已經可以滿足平常的叢集需求,個別不滿足的,當然dubbo也支援自定義擴充套件。

關於dubbo自帶的六種方案,每一種都使用不同的業務需求,具體如下:
1. failover
失敗自動切換,當出現失敗,重試其他伺服器,通常用於查詢操作,但重試會帶來更長的延遲,可以通過retries=n來設定重試次數,不包含第一次
2. failfast
快速失敗,只發起一次呼叫,失敗就報錯,通常用於新增記錄的操作,比如資料同步。
3. failsafe
失敗安全,出現異常直接忽略,也就是對資料的完整性要求不高,通常用於寫入審計日誌等操作
4. failback
失敗自動恢復,失敗後後臺記錄失敗的請求,定時重發,通常用於實時性要求不高的通知類操作
5. forking
並行呼叫,同時呼叫多個伺服器,只要有一個返回成功即可,通常用於實時性要求高的查詢操作,但是對資源的浪費更大,具體並行幾個可以根據forks=n設定
6. broadcast
廣播呼叫所有提供者,逐個呼叫,有一臺報錯就報錯,通常用於更新所有提供者快取或者日誌等本地資源資訊,用的機會較少,並且更新失敗的話對系統影響很小的資源

dubbo負載均衡

當然有了叢集,那麼怎麼樣合理的呼叫叢集,發揮叢集的最大效果也是很重要的一部分,在叢集負載均衡時,dubbo提供了多種均衡策略,預設值是random,即隨機訪問,dubbo自帶的有四種均衡策略,也是基本夠用,如有特殊,也是可以擴充套件的。
關於dubbo的負載策略以及使用場景如下:
1. random
隨機訪問策略,按照權重設定隨機概率,但是一般情況下權重都是設定成一樣的,一般是訪問量越大隨機越均勻。
2. roundrobin
輪訓訪問策略,按照公約後的權重設定輪訓比率,但是一般權重一樣,就是交替訪問,但是會有處理慢的應用資料越堆越多的問題。
3. leastactive
最少活躍數訪問策略,相同的活躍數是隨機訪問的,活躍數就是呼叫前後的計數差,這樣的話處理慢的應用就會收到更少的請求,因為越慢呼叫前後的計數差就越大
4. consistenthash
一致性hash,也就是同一個引數的請求總是到同一個應用,當某一個應用掛掉時,原來發往該應用的請求就會基於虛擬節點,平均分配給其他的提供者,不會引起劇烈的變動

具體的負載策略還是要根據業務的具體需求來指定,叢集實現以及負載策略的指定,都是在xml裡面直接配置,相對簡單,官方文件或者百度一下多多的。

相關推薦

DUBBO叢集容錯負載均衡

dubbo有良好的叢集方案以及負載策略。仔細想了一下,叢集容錯與負載均衡還是要總結在一起,畢竟負載均衡是基於叢集容錯的。 dubbo叢集容錯 在叢集呼叫失敗時,dubbo提供了多種容錯方案,預設方案為failover。dubbo自帶的叢集方案有六種,基本

Dubbo之旅--叢集容錯負載均衡

當我們的系統中用到Dubbo的叢集環境,因為各種原因在叢集呼叫失敗時,Dubbo提供了多種容錯方案,預設為failover重試。        Dubbo的叢集容錯在這裡想說說他是因為我們實際的專案中出現了此類的問題,因為依賴的第三方專案出現異常,導致dubbo呼叫超時,此時使用的是預設的叢集容錯方式

dubbo工作原理,叢集容錯負載均衡

dubbo主要核心部件Remoting:網路通訊框架,實現了sync-over-async和request-response訊息機制。RPC:一個遠端過程呼叫的抽象,支援負載均衡、容災和叢集功能。Registry:服務目錄框架用於服務的註冊和服務事件釋出和訂閱。(類似第一篇文

dubbo高可用之zookeeper宕機、Dubbo直連、負載均衡、服務降級、叢集容錯

之前我們說了dubbo超時重試啟動檢查等配置,接下來我們說一下dubbo高可用的一些配置 1. zookeeper宕機 我們接下來討論一下如果zookeeper宕機對我們的服務提供者消費者有什麼影響 現象:zookeeper註冊中心宕機,還可以消費dubbo暴露的服務。 原因

dubbo容錯負載均衡,協議

帶來 為什麽 div 字符 廣播 cache lib 基於 調用 8.負載均衡 dubbo提供4種負載均衡方式: Random,隨機,按權重配置隨機概率,調用量越大分布越均勻,默認是這種方式 RoundRobin,輪詢,按權重設置輪詢比例,如果存在比較慢的機器容易在這臺

叢集負載均衡系列(8)——redis主從複製+哨兵實現高可用性架構

     主從複製         redis主從複製非常簡單,只需要在從資料節點配置slaveof master-ip master-port即可。我就不多說了。      舉個例子,分別建立3個配置檔案,redis-6379.conf,redis-6380.conf,

叢集負載均衡系列(4)——訊息佇列之Rabbitmq的搭建

        前面的三篇文章介紹了共享session,從這篇文章開始介紹訊息佇列,這裡用的是Rabbitmq。對於Rabbitmq的一些基本概念,不打算在這裡總結了。因為網上有大把總結的不錯的文章,比如點選開啟連結         這篇文章介紹Rabbitmq的安裝。  

叢集負載均衡系列(7)——訊息佇列之分散式事務

         XA協議:                為了解決分散式事務,各大廠家資料庫都提供了xa協議介面。什麼是XA協議,就是通過多階段提交,確保資料一致性。以兩階段提交為例                                  第一階段為準備階段,

Tomcat伺服器叢集負載均衡實現

一、前言 在單一的伺服器上執行WEB應用程式有一些重大的問題,當網站成功建成並開始接受大量請求時,單一伺服器終究無法滿足需要處理的負荷量,所以就有點顯得有點力不從心了。另外一個常見的問題是會產生單點故障,如果該伺服器壞掉,那麼網站就立刻無法運作了。不論是因為要有較佳的擴

12.Dubbo高可用【Zokeeper宕機dubbo直連,負載均衡

1.zookeeper宕機與dubbo直連 直連服務提供者 現象:zookeeper註冊中心宕機,還可以消費dubbo暴露的服務。 原因: 健壯性 監控中心宕掉不影響使用,只是丟失部分取樣資料 資料庫宕掉後,註冊中心仍能通過快取提供服務列表

【Web】Nginx 反向代理負載均衡

連接 代理服務器 body 後端服務 style 執行 class redirect 配置文件 反向代理   反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給in

Ngnix反向代理負載均衡[轉]

web 客戶端連接 虛擬域名 安裝 服務器性能 正則匹配 服務端 file add nginx啟動和關閉(centos平臺) /usr/local/nginx/sbin/nginx #啟動 /usr/local/nginx/sbin/nginx -s re

Nginx作為動靜分離、緩存負載均衡初探

yum 後端 don 巖機 cati max 需要 ssi 上線 一、概述: 我之前有一篇文章寫了Nginx作為web服務器的http與https的初探 作為nginx基礎介紹,作為web服務器使用;今天要介紹的是nginx作為代理服務器和負載均衡服務器的入門介紹;實現內容

centos6 Nginx的安裝部署負載均衡配置

figure logs 修改 命令 b- 增加 windows ip地址 com    一、Nginx簡介 Nginx是一個web服務器也可以用來做負載均衡及反向代理使用,目前使用最多的就是負載均衡,具體簡介我就不介紹了百度一下有很多,下面直接進入安裝步驟 二、Nginx安

實踐NGINX的反向代理負載均衡

nginx源碼安裝實踐NGINX的反向代理與負載均衡 安裝nginx過程 [root@lb01 opt]# yum install pcre-devel openssl-devel -y [root@lb01 opt]# wget -q http://nginx.org/download/nginx-1.1

Nginx反向代理負載均衡

宋體 static initial connect make man perf 為什麽 腳本 第1章 Nginx反向代理與負載均衡1.1 集群簡介若要用一句話描述集群,即一堆服務器合作做同一件事為什麽要使用集群1)高性能2)價格有效性3)可伸縮性(Scalability)

集群負載均衡,分布式計算入門學習

重要 詳細 任務 80端口 恢復 服務 內存 單位 persist 1.集群的概念 計算機集群通過一組松散集成的計算機軟件和/或硬件連接起來高度緊密地協作完成計算工作。 是一組獨立的計算機系統構成一個松耦合的多處理器系統,它們之間通過網絡實現進程間的

dubbo 叢集容錯模式原始碼學習---ForkingCluster

ForkingCluster 模式 思想:服務端多個節點並行響應(併發任務)某個服務的請求,將執行完的結果放在一個阻塞佇列中(FIFO)。第一個完成的任務的結果進入佇列,將會馬上返回,不會等待所有任務執行完成, 只要有一個任務完成,結果放到佇列中,佇列中彈出第一個(最快完成響應的那個節點

dubbo 叢集容錯模式原始碼學習 -- FaibackCluster

#FailbackCluster 當呼叫失敗後,將呼叫失敗的請求放在failed 集合。這個集合是併發訪問,所有的請求失敗的都會放在這個結合中。之後,通過scheduledExecutorService 去定時從新執行這些失敗的請求,只要failed 集合有元素,就會執行。 public

Nginx排程負載均衡配置(upstream配置)

一. Nginx排程與負載均衡配置(upstream配置) 輪詢(預設) 每個請求按時間順序逐一分配到不同的後端伺服器。 weight指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況,weight預設值為1。 例如: upstream bakend {