1. 程式人生 > >【上海校區】整理的Dubbo面試題

【上海校區】整理的Dubbo面試題

本帖最後由 chenquanyi626 於 2017-12-21 10:43 編輯
Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。 Dubbo[]是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。 它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地鬆耦合)。從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。關於註冊中心、協議支援、服務監控等內容。

1. Dubbo中zookeeper做註冊中心,如果註冊中心叢集都掛掉,釋出者和訂閱者之間還能通訊麼?
可以通訊的,啟動dubbo時,消費者會從zk拉取註冊的生產者的地址介面等資料,快取在本地。每次呼叫時,按照本地儲存的地址進行呼叫; 註冊中心對等叢集,任意一臺宕機後,將會切換到另一臺;註冊中心全部宕機後,服務的提供者和消費者仍能通過本地快取通訊。服務提供者無狀態,任一臺 宕機後,不影響使用;服務提供者全部宕機,服務消費者會無法使用,並無限次重連等待服務者恢復; 掛掉是不要緊的,但前提是你沒有增加新的服務,如果你要呼叫新的服務,則是不能辦到的。
附文件截圖: 

2. dubbo服務負載均衡策略? l Random LoadBalance     隨機,按權重設定隨機概率。在一個截面上碰撞的概率高,但呼叫量越大分佈越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。
(權重可以在dubbo管控臺配置)
l RoundRobin LoadBalance     輪循,按公約後的權重設定輪循比率。存在慢的提供者累積請求問題,比如:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。
l LeastActive LoadBalance    最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差。使慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大。
l ConsistentHash LoadBalance 一致性Hash,相同引數的請求總是發到同一提供者。當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。預設只對第一個引數Hash,如果要修改,請配置 [AppleScript] 純文字檢視
 複製程式碼 ?
1 <dubbo:parameter key="hash.arguments" value="0,1" />
預設用160份虛擬節點,如果要修改,請配置 [AppleScript] 純文字檢視 複製程式碼 ?
1 <dubbo:parameter key="hash.nodes" value="320" />

3. Dubbo在安全機制方面是如何解決的 Dubbo通過Token令牌防止使用者繞過註冊中心直連,然後在註冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的呼叫方。
4. dubbo連線註冊中心和直連的區別 在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連, 點對點直聯方式,將以服務介面為單位,忽略註冊中心的提供者列表,
服務註冊中心,動態的註冊和發現服務,使服務的位置透明,並通過在消費方獲取服務提供方地址列表,實現軟負載均衡和Failover, 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。 服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選另一臺呼叫。註冊中心負責服務地址的註冊與查詢,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心互動,註冊中心不轉發請求,服務消費者向註冊中心獲取服務提供者地址列表,並根據負載演算法直接呼叫提供者,註冊中心,服務提供者,服務消費者三者之間均為長連線,監控中心除外,註冊中心通過長連線感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者 註冊中心和監控中心全部宕機,不影響已執行的提供者和消費者,消費者在本地快取了提供者列表 註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者。
1. dubbo服務叢集配置(叢集容錯模式) 在叢集呼叫失敗時,Dubbo 提供了多種容錯方案,預設為 failover 重試。可以自行擴充套件叢集容錯策略 l Failover Cluster(預設)     失敗自動切換,當出現失敗,重試其它伺服器。(預設)通常用於讀操作,但重試會帶來更長延遲。可通過retries="2"來設定重試次數(不含第一次)。 [AppleScript] 純文字檢視 複製程式碼 ?
1 2 3 4 <dubbo:service retries="2" cluster="failover"/> 或: <dubbo:reference retries="2" cluster="failover"/> cluster="failover"可以不用寫,因為預設就是failover

l Failfast Cluster

相關推薦

上海校區整理Dubbo試題

本帖最後由 chenquanyi626 於 2017-12-21 10:43 編輯 Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。 Dubbo[]是一個分散式服務框架,致力於提供

筆試/面試SQL 經典試題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

面試必備常見Java試題大綜合

一、Java基礎1、Arrays.sort實現原理和Collections.sort實現原理答:Collections.sort方法底層會呼叫Arrays.sort方法,底層實現都是TimeSort實現的。TimSort演算法就是找到已經排好序資料的子序列,然後對剩餘部分排序,然後合併起來.2、foreach

資料結構連結串列試題升級版

1、複雜連結串列的複製 複雜連結串列 一個連結串列的每個結點,有一個next指標指向下一個結點,還有一個random指標指向這個連結串列中的隨機一個結點或者NULL。 現在要求複製這個連結串列,並返回複製後的新連結串列。 思路如下: 複雜連結串列的資料型別: typedef str

資料結構連結串列試題

1、倒序列印連結串列 (1)非遞迴方式 程式碼如下: void ReversePrint(ListNode **pFirst) { ListNode *last = NULL; ListNode *cur = NULL; assert(*pFirst != NULL); w

校招百度試題-4種陣列去重的方法

第一部分原文連結:http://blog.csdn.net/u011277123/article/details/54091442第二部分原文連結:http://blog.csdn.net/icessunt/article/details/69098474方法一: findI

好文淘寶試題:如何充分利用多核CPU,計算很大的List中所有整數的和

引用 前幾天在網上看到一個淘寶的面試題:有一個很大的整數list,需要求這個list中所有整數的和,寫一個可以充分利用多核CPU的程式碼,來計算結果。 一:分析題目 從題中可以看到“很大的List”以及“充分利用多核CPU”,這就已經充分告訴我們要採用多執行緒(任務)進行

LeetCode/LintCode丨Google試題:N皇后問題

n皇后問題是將n個皇后放置在n*n的棋盤上,皇后彼此之間不能相互攻擊(任意兩個皇后不能位於同一行,同一列,同一斜線)。 給定一個整數n,返回所有不同的n皇后問題的解決方案。 每個解決方案包含一個明確的n皇后放置佈局,其中“Q”和“.”分別表示一個女王和一個空位置。 線上評測地址: LintCode 領釦​ 樣

前端芝士樹Vue.js試題整理 / 知識點梳理

【前端芝士樹】 Vue.js 面試題整理 MVVM是什麼? MVVM 是 Model-View-ViewModel 的縮寫。 Model代表資料模型,也可以在Model中定義資料修改和操作的業務邏輯。 View 代表UI 元件,它負責將資料模型轉化成UI 展現出來。 ViewMode

搞定Redis之 Redis 試題整理

redis單執行緒問題 單執行緒指的是網路請求模組使用了一個執行緒(所以不需考慮併發安全性),即一個執行緒處理所有網路請求,其他模組仍用了多個執行緒。 為什麼說redis能夠快速執行? 絕大部分請求是純粹的記憶體操作(非常快速); 採用單執行緒,避免了不必要的上下文切換和競爭條件

面試iOS 開發試題(一)

readonly ava obj jce easy 主動 每一個 我不 com   1. #import 跟#include 又什麽差別,@class呢, #import<> 跟 #import””又什麽差別?   答:#import是Obje

劍指offerJVM經典試題

JVM是Java Virtual Machine(Java虛擬機器)的縮寫,JVM是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。 Java語言的一個非常重要的特點就是與平臺的無關性。而使用Java虛擬機器是實現這一特點的關鍵。一般的高階語言

那些年遇到過的試題select poll epoll

zz 補充: pselect 和 select的區別: pselect使用的timespec結構,而不適用timeval結構,精度更高。 pselect增加了一個引數,一個指向訊號掩碼的指標。 select的幾大缺點: (1)每次呼叫select,

SQL常用MySQL試題(二)

SQL索引 一、為什麼要建立索引呢(優點)? 建立索引可以大大提高系統的效能。 第一, 通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。 第二, 可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。 第三, 可以加速表和表之

SQL常用MySQL試題(一)

1、資料庫事務的四個特性及含義 資料庫事務transanction正確執行的四個基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔離性(Isolation)、永續性(Durability)。 原子性:整

原創python處理 試題:迴文…

今日面試題:迴文分割 對一個字串按照迴文進行分割,例如aba|b|bbabb|a|b|aba就是字串ababbbabbababa的一個迴文分割,每一個字串都是一個迴文。請找到可以分割的最少的字串數。例如: ababbbabbababa最少4個字串,分割三次:a|babbbab|b|ababa

[ 轉載 ] [Java經]幹貨整理, Java試題(覆蓋Java基礎,Java高級,JavaEE,數據庫,設計模式等)

post font www 數據庫 .com logs pan targe -m http://www.cnblogs.com/wang-meng/p/5898837.html[ 轉載 ] [Java面經]幹貨整理, Java面試題(覆蓋Java基礎,Java高級,Jav

濟南校區最難的路,請自己走

img bind 任性 復雜 學會 事情 技術 tac AR 生活是什麽? 生活就是讓你把苦水吞進去, 把淚水憋回去, 把汗水抹下去.... 生活是那個最嚴厲的老師! 從為一點小事矯情, 到學會了冷靜, 你知道了什麽叫不值得; 從淚水漣漣渴望同情, 到懂得了安

濟南校區寶劍鋒從磨礪出

進行 pub 動力 能力 每次 感想 概念 finall 模式 public class 寶劍鋒從磨礪出{ private 同學; private 老師; private 黑馬; public static void main(String[] a

小思考Python裏有聲明和定義分離這一說麽?

聲明定義 告訴 符號 根據 span 如果 處理 入口 代碼 第一部分: 探究這個問題,還是因為編程的時候碰到了這個錯誤: 提示tcplink沒有定義,tcplink是我自己寫的一個給監聽到的tcp連接請求分配新線程的函數,不過是寫在了下面,就像這樣: 如果是C++裏面