Dubbo面試及答案_第1頁
Dubbo面試及答案_第2頁
Dubbo面試及答案_第3頁
Dubbo面試及答案_第4頁
Dubbo面試及答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、Dubbo支持哪些協(xié)議,每種協(xié)議的應用場景,優(yōu)缺點??dubbo:單一長連接和NIO異步通訊,適合大并發(fā)小數(shù)據(jù)量的服務調(diào)用,以及消費者遠大于提供者。傳輸協(xié)議TCP,異步,Hessian序列化;?rmi:采用JDK標準的rmi協(xié)議實現(xiàn),傳輸參數(shù)和返回參數(shù)對象需要實現(xiàn)Serializable接口,使用java標準序列化機制,使用阻塞式短連接,傳輸數(shù)據(jù)包大小混合,消費者和提供者個數(shù)差不多,可傳文件,傳輸協(xié)議TCP。多個短連接,TCP協(xié)議傳輸,同步傳輸,適用常規(guī)的遠程服務調(diào)用和rmi立操作。在依賴低版本的Common-Collections包,java序列化存在安全漏洞;?webservice:基于W

2、ebService的遠程調(diào)用協(xié)議,集成CXF實現(xiàn),提供和原生WebService的互操作。多個短連接,基于HTTP傳輸,同步傳輸,適用系統(tǒng)集成和跨語言調(diào)用;?http:基于Http表單提交的遠程調(diào)用協(xié)議, 使用Spring的HttpInvoke實現(xiàn)。 多個短連接,傳輸協(xié)議HTTP,傳入?yún)?shù)大小混合,提供者個數(shù)多于消費者,需要給應用程序和瀏覽器JS調(diào)用;?hessian:集成Hessian服務,基于HTTP通訊,采用Servlet暴露服務,Dubbo內(nèi)嵌Jetty作為服務器時默認實現(xiàn), 提供與Hession服務互操作。 多個短連接, 同步HTTP傳輸,Hessian序列化,傳入?yún)?shù)較大,提供者大

3、于消費者,提供者壓力較大,可傳文件;?memcache基于memcached實現(xiàn)的RPC協(xié)議?redis:基于redis實現(xiàn)的RPC協(xié)議Dubbo超時時間怎樣設置?Dubbo超時時間設置有兩種方式:?服務提供者端設置超時時間,在Dubbo的用戶文檔中,推薦如果能在服務端多配置就盡量多配置,因為服務提供者比消費者更清楚自己提供的服務特性。?服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消費者端為主,即優(yōu)先級更高。因為服務調(diào)用方設置超時時間控制性更靈活。如果消費方超時,服務端線程不會定制,會產(chǎn)生警告。Dubbo有些哪些注冊中心??Multicast注冊中心:Multicast注冊中心不

4、需要任何中心節(jié)點,只要廣播地址,就能進行服務注冊和發(fā)現(xiàn)?;诰W(wǎng)絡中組播傳輸實現(xiàn);?Zookeeper注冊中心:基于分布式協(xié)調(diào)系統(tǒng)Zookeeper實現(xiàn),采用Zookeeper的watch機制實現(xiàn)數(shù)據(jù)變更;?redis注冊中心:基于redis實現(xiàn),采用key/Map存儲,住key存儲服務名和類型,Map中key存儲服務URL.,value服務過期時間?;趓edis的發(fā)布/訂閱模式通知數(shù)據(jù)變更;?Simple注冊中心Dubbo集群的負載均衡有哪些策略Dubbo提供了常見的集群策略實現(xiàn),并預擴展點予以自行實現(xiàn)。?RandomLoadBalance:隨機選取提供者策略,有利于動態(tài)調(diào)整提供者權(quán)重。截面

5、碰撞率高,調(diào)用次數(shù)越多,分布越均勻;?RoundRobinLoadBalance:輪循選取提供者策略,平均分布,但是存在請求累積的問題;?LeastActiveLoadBalance:最少活躍調(diào)用策略,解決慢提供者接收更少的請求;?ConstantHashLoadBalance:一致性Hash策略,使相同參數(shù)請求總是發(fā)到同一提供者,一臺機器宕機,可以基于虛擬節(jié)點,分攤至其他提供者,避免引起提供者的劇烈變動;?Dubbo是什么??Dubbo是一個分布式、高性能、透明化的RPC服務框架,提供服務自動注冊、自動發(fā)現(xiàn)等高效服務治理方案,可以和Spring框架無縫集成。?Dubbo的主要應用場景??透明

6、化的遠程方法調(diào)用,就像調(diào)用本地方法一樣調(diào)用遠程方法,只需簡單配置,沒有任何API侵入。?軟負載均衡及容錯機制,可在內(nèi)網(wǎng)替代F5等硬件負載均衡器,降低成本,減少單點。?服務自動注冊與發(fā)現(xiàn),不再需要寫死服務提供方地址,注冊中心基于接口名查詢服務提供者的IP地址,并且能夠平滑添加或刪除服務提供者。Dubbo的核心功能?主要就是如下3個核心功能:Remoting:網(wǎng)絡通信框架, 提供對多種NIO框架抽象封裝, 包括“同步轉(zhuǎn)異步”和“請求-響應”模式的信息交換方式。Cluster:服務框架,提供基于接口方法的透明遠程過程調(diào)用,包括多協(xié)議支持,以及軟負載均衡,失敗容錯,地址路由,動態(tài)配置等集群支持。Reg

7、istry:服務注冊,基于注冊中心目錄服務, 使服務消費方能動態(tài)的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。Dubbo的核心組件?.組件角色說明.Provider暴露服務的服務提供方Consumer調(diào)用遠程服務的服務消費方Registry服務注冊與發(fā)現(xiàn)的注冊中心Monitor統(tǒng)計服務的調(diào)用次調(diào)和調(diào)用時間的監(jiān)控中心Container服務運行容器Dubbo服務注冊與發(fā)現(xiàn)的流程?PuPu版MonitorMonitor流程說明:Provider(提供者)綁定指定端口并啟動服務指供者連接注冊中心,并發(fā)本機IP、端口、應用信息和提供服務信息發(fā)送至注冊中心存儲Consumer(消費者)

8、,連接注冊中心,并發(fā)送應用信息、所求服務信息至注冊中心注冊中心根據(jù)消費者所求服務信息匹配對應的提供者列表發(fā)送至Consumer應用緩存。Consumer在發(fā)起遠程調(diào)用時基于緩存的消費者列表擇其一發(fā)起調(diào)用。Provider狀態(tài)變更會實時通知注冊中心、在由注冊中心實時推送至Consumer設計的原因:Consumer與Provider解偶,雙方都可以橫向增減節(jié)點數(shù)。注冊中心對本身可做對等集群,可動態(tài)增減節(jié)點,并且任意一臺宕掉后,將自動切換到另一臺去中心化,雙方不直接依懶注冊中心,即使注冊中心全部宕機短時間內(nèi)也不會影響服務的調(diào)用服務提供者無狀態(tài),任意一臺宕掉后,不影響使用長連接投連接DublinDu

9、blinRegistryRegistry送服務觸址列表冊服務姻址Qyb*PQyb*PInvokerInvokerServiceServiceConsumerConsumerL旭機叫用一個服務地址,失敗史 HH 一地址M)bQM)bQExporterExporterfServiceServiceProviderProviderI;0.啟動ContainerDubbo的架構(gòu)設計?Dubbo框架設計一共劃分了10個層:服務接口層(Service):該層是與實際業(yè)務邏輯相關的,根據(jù)服務提供方和服務消費方的業(yè)務設計對應的接口和實現(xiàn)。配置層(Config):對外配置接口,以ServiceConfig和Re

10、ferenceConfig為中心。服務代理層(Proxy):服務接口透明代理,生成服務的客戶端Stub和服務器端Skeleton。服務注冊層(Registry):封裝服務地址的注冊與發(fā)現(xiàn),以服務URL為中心。集群層(Cluster):封裝多個提供者的路由及負載均衡,并橋接注冊中心,以Invoker為中心。監(jiān)控層(Monitor):RPC調(diào)用次數(shù)和調(diào)用時間監(jiān)控。遠程調(diào)用層(Protocol):封將RPC調(diào)用,以Invocation和Result為中心,擴展接口為Protocol、Invoker和Exporter。:封裝請求響應模式,同步轉(zhuǎn)異步,以Request:抽象mina和netty為統(tǒng)一接口

11、,以信息交換層(Exchange)和Response為中心。網(wǎng)絡傳輸層(Transport)Message為中心。Dubbo的服務調(diào)用流程?八hitethitetH H LepwiidLepwiid.OubboFrarritwoHc.OubboFrarritwoHc.uikuiiiie.uikuiiiiedllhLudllhLuJM?川dll,|dVd,dll,|dVd,、LHtLHtcontfK!.deprccitrdPHentMircount,limit,monitoicollrclrandrourntrotir,Ir.iibKtivr史上聒加 bizbiz 面試 2 2 強玉匚普率:梭心

12、組性 M M 第治坦十架 F8F8k km m 加當設討等Dubbo支持哪些協(xié)議,每種協(xié)議的應用場景,優(yōu)缺點?dubbo:單一長連接和NIO異步通訊,適合大并發(fā)小數(shù)據(jù)量的服務調(diào)用,以及消費者遠大于提供者。傳輸協(xié)議TCP,異步,Hessian序列化;rmi: 采用JDK標準的rmi協(xié)議實現(xiàn), 傳輸參數(shù)和返回參數(shù)對象需要實現(xiàn)Serializable接口,使用java標準序列化機制,使用阻塞式短連接,傳輸數(shù)據(jù)包大小混合,消費者和提供者個數(shù)差不多,可傳文件,傳輸協(xié)議TCP多個短連接,TCP協(xié)議傳輸,同步傳輸,適用常規(guī)的遠程服務調(diào)用和rmi互操作。在依賴低版本的Common-Collections包,j

13、ava序列化存在安全漏洞;webservice:基于WebService的遠程調(diào)用協(xié)議,集成CXF實現(xiàn),提供和原生WebService的互操作。多個短連接,基于HTTP傳輸,同步傳輸,適用系統(tǒng)集成和跨語言調(diào)用;http:基于Http表單提交的遠程調(diào)用協(xié)議, 使用Spring的HttpInvoke實現(xiàn)。 多個短連fixedcachedtfTgpo,idkdravassstDubboEKtenionDubboEKtenionUE1白E中.一一+ConiumerProviderHlnierfaceConiumerProviderHlnierface| |ClassInheritClassInheri

14、t- -3*QW3*QWjava,genericjava,genericnctlyniinanctty,min.idubgrmi.hdubgrmi.h 珈曲由 httphttpdubbo,nomniirdydubbo,nomniirdytmplementtmplementEmplerFentEmplerFent“vovol lS 斗江三fdkjdvwMccrntfxtoken,3c*-j_.-;;s-X眠芬容媼評品服著湖用統(tǒng)il過多的服務URL配置困難負載均衡分配節(jié)點壓力過大的情況下也需要部署集群服務依賴混亂,啟動順序不清晰過多服務導致性能指標分析難度較大,需要監(jiān)控Dubbo的注冊中心集群掛掉

15、,發(fā)布者和訂閱者之間還能通信么?可以的,啟動dubbo時,消費者會從zookeeper拉取注冊的生產(chǎn)者的地址接口等數(shù)據(jù),緩存在本地。每次調(diào)用時,按照本地存儲的地址進行調(diào)用。調(diào)堆中心服務降級依賴關系46資婦H:濯考法,Y%媽,*美融路徑分析I監(jiān)控中心Dubbo與Spring的關系?Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴展進行加載。Dubbo使用的是什么通信框架?默認使用NIONetty框架Dubbo集群提供了哪些負載均衡策略?RandomLoadBalance:隨機選取

16、提供者策略,有利于動態(tài)調(diào)整提供者權(quán)重。截面碰撞率高,調(diào)用次數(shù)越多,分布越均勻;RoundRobinLoadBalance:輪循選取提供者策略,平均分布,但是存在請求累積的問題;LeastActiveLoadBalance:最少活躍調(diào)用策略,解決慢提供者接收更少的請求;ConstantHashLoadBalance:一致性Hash策略,使相同參數(shù)請求總是發(fā)到同一提供者,一臺機器宕機,可以基于虛擬節(jié)點,分攤至其他提供者,避免引起提供者的劇烈變動;缺省時為Random隨機調(diào)用Dubbo的集群容錯方案有哪些?FailoverCluster失敗自動切換,當出現(xiàn)失敗,重試其它服務器。通常用于讀操作,但重試

17、會帶來更長延遲。FailfastCluster快速失敗,只發(fā)起一次調(diào)用,失敗立即報錯。通常用于非幕等性的寫操作,比如新增記錄。FailsafeCluster失敗安全,出現(xiàn)異常時,直接忽略。通常用于寫入審計日志等操作。FailbackCluster失敗自動恢復,后臺記錄失敗請求,定時重發(fā)。通常用于消息通知操作。ForkingCluster并行調(diào)用多個服務器,只要一個成功即返回。通常用于實時性要求較高的讀操作,但需要浪費更多服務資源??赏ㄟ^forks=2”來設置最大并行數(shù)。BroadcastCluster廣播調(diào)用所有提供者,逐個調(diào)用,任意一臺報錯則報錯。通常用于通知所有提供者更新緩存或日志等本地資

18、源信息。Dubbo的默認集群容錯方案?FailoverClusterDubbo支持哪些序列化方式?默認使用Hessian序列化,還有Duddo、FastJson、Java自帶序列化。Dubbo超時時間怎樣設置?Dubbo超時時間設置有兩種方式:服務提供者端設置超時時間,在Dubbo的用戶文檔中,推薦如果能在服務端多配置就盡量多配置,因為服務提供者比消費者更清楚自己提供的服務特性。服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消費者端為主,即優(yōu)先級更高。因為服務調(diào)用方設置超時時間控制性更靈活。如果消費方超時,服務端線程不會定制,會產(chǎn)生警告。服務調(diào)用超時問題怎么解決?dubbo在調(diào)用服務不成功時,默認是會重試兩次的。Dubbo在安全機制方面是如何解決?Dubbo通過Token令牌防止用戶繞過注冊中心直連,然后在注冊中心上管理授權(quán)。Dubbo還提供服務黑白名單,來控制服務所允許的調(diào)用方。Dubbo和Dubbox之間的區(qū)別?DubboSpringCloud服篝注冊中心ZcxjkeeperSpring

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論