内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Dubbo的面試題有哪些

本篇內(nèi)容介紹了“Dubbo的面試題有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的福安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

dubbo是什么

dubbo是一個(gè)分布式框架,遠(yuǎn)程服務(wù)調(diào)用的分布式框架,其核心部分包含:集群容錯(cuò):提供基于接口方法的透明遠(yuǎn)程過(guò)程調(diào)用,包括多協(xié)議支持,以及軟負(fù)載均衡,失敗容錯(cuò),地址路由,動(dòng)態(tài)配置等集群支持。遠(yuǎn)程通訊:提供對(duì)多種基于長(zhǎng)連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請(qǐng)求-響應(yīng)”模式的信息交換方式。自動(dòng)發(fā)現(xiàn):基于注冊(cè)中心目錄服務(wù),使服務(wù)消費(fèi)方能動(dòng)態(tài)的查找服務(wù)提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機(jī)器。

dubbo能做什么

透明化的遠(yuǎn)程方法調(diào)用,就像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,只需簡(jiǎn)單配置,沒(méi)有任何API侵入。軟負(fù)載均衡及容錯(cuò)機(jī)制,可在內(nèi)網(wǎng)替代F5等硬件負(fù)載均衡器,降低成本,減少單點(diǎn)。服務(wù)自動(dòng)注冊(cè)與發(fā)現(xiàn),不再需要寫(xiě)死服務(wù)提供方地址,注冊(cè)中心基于接口名查詢服務(wù)提供者的IP地址,并且能夠平滑添加或刪除服務(wù)提供者。

1、默認(rèn)使用的是什么通信框架,還有別的選擇嗎?

答:默認(rèn)也推薦使用 netty 框架,還有 mina。

2、服務(wù)調(diào)用是阻塞的嗎?

答:默認(rèn)是阻塞的,可以異步調(diào)用,沒(méi)有返回值的可以這么做。

3、一般使用什么注冊(cè)中心?還有別的選擇嗎?

答:推薦使用 zookeeper 注冊(cè)中心,還有 Multicast注冊(cè)中心, redis注冊(cè)中心, Simple注冊(cè)中心.

ZooKeeper的節(jié)點(diǎn)是通過(guò)像樹(shù)一樣的結(jié)構(gòu)來(lái)進(jìn)行維護(hù)的,并且每一個(gè)節(jié)點(diǎn)通過(guò)路徑來(lái)標(biāo)示以及訪問(wèn)。除此之外,每一個(gè)節(jié)點(diǎn)還擁有自身的一些信息,包括:數(shù)據(jù)、數(shù)據(jù)長(zhǎng)度、創(chuàng)建時(shí)間、修改時(shí)間等等。

4、默認(rèn)使用什么序列化框架,你知道的還有哪些?

答:默認(rèn)使用 Hessian 序列化,還有 Duddo、FastJson、Java 自帶序列化。hessian是一個(gè)采用二進(jìn)制格式傳輸?shù)姆?wù)框架,相對(duì)傳統(tǒng)soap web service,更輕量,更快速。

Hessian原理與協(xié)議簡(jiǎn)析:

http的協(xié)議約定了數(shù)據(jù)傳輸?shù)姆绞剑琱essian也無(wú)法改變太多:

1) hessian中client與server的交互,基于http-post方式。

2) hessian將輔助信息,封裝在http header中,比如“授權(quán)token”等,我們可以基于http-header來(lái)封裝關(guān)于“安全校驗(yàn)”“meta數(shù)據(jù)”等。hessian提供了簡(jiǎn)單的”校驗(yàn)”機(jī)制。

3) 對(duì)于hessian的交互核心數(shù)據(jù),比如“調(diào)用的方法”和參數(shù)列表信息,將通過(guò)post請(qǐng)求的body體直接發(fā)送,格式為字節(jié)流。

4) 對(duì)于hessian的server端響應(yīng)數(shù)據(jù),將在response中通過(guò)字節(jié)流的方式直接輸出。

hessian的協(xié)議本身并不復(fù)雜,在此不再贅言;所謂協(xié)議(protocol)就是約束數(shù)據(jù)的格式,client按照協(xié)議將請(qǐng)求信息序列化成字節(jié)序列發(fā)送給server端,server端根據(jù)協(xié)議,將數(shù)據(jù)反序列化成“對(duì)象”,然后執(zhí)行指定的方法,并將方法的返回值再次按照協(xié)議序列化成字節(jié)流,響應(yīng)給client,client按照協(xié)議將字節(jié)流反序列話成”對(duì)象”。

5、服務(wù)提供者能實(shí)現(xiàn)失效踢出是什么原理?

答:服務(wù)失效踢出基于 zookeeper 的臨時(shí)節(jié)點(diǎn)原理。

6、服務(wù)上線怎么不影響舊版本?

答:采用多版本開(kāi)發(fā),不影響舊版本。在配置中添加version來(lái)作為版本區(qū)分

7、如何解決服務(wù)調(diào)用鏈過(guò)長(zhǎng)的問(wèn)題?

答:可以結(jié)合 zipkin 實(shí)現(xiàn)分布式服務(wù)追蹤。

8、說(shuō)說(shuō)核心的配置有哪些?

核心配置有:

1) dubbo:service/

2) dubbo:reference/

3) dubbo:protocol/

4) dubbo:registry/

5) dubbo:application/

6) dubbo:provider/

7) dubbo:consumer/

8) dubbo:method/

9、dubbo 推薦用什么協(xié)議?

答:默認(rèn)使用 dubbo 協(xié)議。

10、同一個(gè)服務(wù)多個(gè)注冊(cè)的情況下可以直連某一個(gè)服務(wù)嗎?

答:可以直連,修改配置即可,也可以通過(guò) telnet 直接某個(gè)服務(wù)。

11、dubbo 在安全機(jī)制方面如何解決的?

dubbo 通過(guò) token 令牌防止用戶繞過(guò)注冊(cè)中心直連,然后在注冊(cè)中心管理授權(quán),dubbo 提供了黑白名單,控制服務(wù)所允許的調(diào)用方。

12、集群容錯(cuò)怎么做?

答:讀操作建議使用 Failover 失敗自動(dòng)切換,默認(rèn)重試兩次其他服務(wù)器。寫(xiě)操作建議使用 Failfast 快速失敗,發(fā)一次調(diào)用失敗就立即報(bào)錯(cuò)。

13、在使用過(guò)程中都遇到了些什么問(wèn)題?如何解決的?

1) 同時(shí)配置了 XML 和 properties 文件,則 properties 中的配置無(wú)效

只有 XML 沒(méi)有配置時(shí),properties 才生效。

2) dubbo 缺省會(huì)在啟動(dòng)時(shí)檢查依賴是否可用,不可用就拋出異常,阻止 spring 初始化完成,check 屬性默認(rèn)為 true。

測(cè)試時(shí)有些服務(wù)不關(guān)心或者出現(xiàn)了循環(huán)依賴,將 check 設(shè)置為 false

3) 為了方便開(kāi)發(fā)測(cè)試,線下有一個(gè)所有服務(wù)可用的注冊(cè)中心,這時(shí),如果有一個(gè)正在開(kāi)發(fā)中的服務(wù)提供者注冊(cè),可能會(huì)影響消費(fèi)者不能正常運(yùn)行。

解決:讓服務(wù)提供者開(kāi)發(fā)方,只訂閱服務(wù),而不注冊(cè)正在開(kāi)發(fā)的服務(wù),通過(guò)直連測(cè)試正在開(kāi)發(fā)的服務(wù)。設(shè)置 dubbo:registry 標(biāo)簽的 register 屬性為 false。

4) spring 2.x 初始化死鎖問(wèn)題。

在 spring 解析到 dubbo:service 時(shí),就已經(jīng)向外暴露了服務(wù),而 spring 還在接著初始化其他 bean,如果這時(shí)有請(qǐng)求進(jìn)來(lái),并且服務(wù)的實(shí)現(xiàn)類里有調(diào)用 applicationContext.getBean() 的用法。getBean 線程和 spring 初始化線程的鎖的順序不一樣,導(dǎo)致了線程死鎖,不能提供服務(wù),啟動(dòng)不了。

解決:不要在服務(wù)的實(shí)現(xiàn)類中使用 applicationContext.getBean(); 如果不想依賴配置順序,可以將 dubbo:provider 的 deplay 屬性設(shè)置為 - 1,使 dubbo 在容器初始化完成后再暴露服務(wù)。

5) 服務(wù)注冊(cè)不上

檢查 dubbo 的 jar 包有沒(méi)有在 classpath 中,以及有沒(méi)有重復(fù)的 jar 包

檢查暴露服務(wù)的 spring 配置有沒(méi)有加載

在服務(wù)提供者機(jī)器上測(cè)試與注冊(cè)中心的網(wǎng)絡(luò)是否通

6) 出現(xiàn) RpcException: No provider available for remote service 異常

表示沒(méi)有可用的服務(wù)提供者,

a. 檢查連接的注冊(cè)中心是否正確

b. 到注冊(cè)中心查看相應(yīng)的服務(wù)提供者是否存在

c. 檢查服務(wù)提供者是否正常運(yùn)行

7) 出現(xiàn)” 消息發(fā)送失敗” 異常

通常是接口方法的傳入傳出參數(shù)未實(shí)現(xiàn) Serializable 接口。

14、dubbo 和 dubbox 之間的區(qū)別?

答:dubbox 是當(dāng)當(dāng)網(wǎng)基于 dubbo 上做了一些擴(kuò)展,如加了服務(wù)可 restful 調(diào)用,更新了開(kāi)源組件等。

15、你還了解別的分布式框架嗎?

答:別的還有 spring 的 spring cloud,facebook 的 thrift,twitter 的 finagle 等。

16、Dubbo 支持哪些協(xié)議,每種協(xié)議的應(yīng)用場(chǎng)景,優(yōu)缺點(diǎn)?

dubbo:?jiǎn)我婚L(zhǎng)連接和 NIO 異步通訊,適合大并發(fā)小數(shù)據(jù)量的服務(wù)調(diào)用,以及消費(fèi)者遠(yuǎn)大于提供者。傳輸協(xié)議 TCP,異步,Hessian 序列化;

rmi:采用 JDK 標(biāo)準(zhǔn)的 rmi 協(xié)議實(shí)現(xiàn),傳輸參數(shù)和返回參數(shù)對(duì)象需要實(shí)現(xiàn) Serializable 接口,使用 java 標(biāo)準(zhǔn)序列化機(jī)制,使用阻塞式短連接,傳輸數(shù)據(jù)包大小混合,消費(fèi)者和提供者個(gè)數(shù)差不多,可傳文件,傳輸協(xié)議 TCP。多個(gè)短連接,TCP 協(xié)議傳輸,同步傳輸,適用常規(guī)的遠(yuǎn)程服務(wù)調(diào)用和 rmi 互操作。在依賴低版本的 Common-Collections 包,java 序列化存在安全漏洞;

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

memcache:基于 memcached 實(shí)現(xiàn)的 RPC 協(xié)議 redis:基于 redis 實(shí)現(xiàn)的 RPC 協(xié)議

17、Dubbo 集群的負(fù)載均衡有哪些策略

Dubbo 提供了常見(jiàn)的集群策略實(shí)現(xiàn),并預(yù)擴(kuò)展點(diǎn)予以自行實(shí)現(xiàn)。

Random LoadBalance: 隨機(jī)選取提供者策略,有利于動(dòng)態(tài)調(diào)整提供者權(quán)重。截面碰撞率高,調(diào)用次數(shù)越多,分布越均勻;

RoundRobin LoadBalance: 輪循選取提供者策略,平均分布,但是存在請(qǐng)求累積的問(wèn)題;

LeastActive LoadBalance: 最少活躍調(diào)用策略,解決慢提供者接收更少的請(qǐng)求;ConstantHash LoadBalance: 一致性 Hash 策略,使相同參數(shù)請(qǐng)求總是發(fā)到同一提供者,一臺(tái)機(jī)器宕機(jī),可以基于虛擬節(jié)點(diǎn),分?jǐn)傊疗渌峁┱?,避免引起提供者的劇烈變?dòng);

18、服務(wù)調(diào)用超時(shí)問(wèn)題怎么解決

dubbo在調(diào)用服務(wù)不成功時(shí),默認(rèn)是會(huì)重試兩次的。這樣在服務(wù)端的處理時(shí)間超過(guò)了設(shè)定的超時(shí)時(shí)間時(shí),就會(huì)有重復(fù)請(qǐng)求,比如在發(fā)郵件時(shí),可能就會(huì)發(fā)出多份重復(fù)郵件,執(zhí)行注冊(cè)請(qǐng)求時(shí),就會(huì)插入多條重復(fù)的注冊(cè)數(shù)據(jù),那么怎么解決超時(shí)問(wèn)題呢?如下

對(duì)于核心的服務(wù)中心,去除dubbo超時(shí)重試機(jī)制,并重新評(píng)估設(shè)置超時(shí)時(shí)間。業(yè)務(wù)處理代碼必須放在服務(wù)端,客戶端只做參數(shù)驗(yàn)證和服務(wù)調(diào)用,不涉及業(yè)務(wù)流程處理 全局配置實(shí)例

Dubbo的面試題有哪些

當(dāng)然Dubbo的重試機(jī)制其實(shí)是非常好的QOS保證,它的路由機(jī)制,是會(huì)幫你把超時(shí)的請(qǐng)求路由到其他機(jī)器上,而不是本機(jī)嘗試,所以 dubbo的重試機(jī)器也能一定程度的保證服務(wù)的質(zhì)量。但是請(qǐng)一定要綜合線上的訪問(wèn)情況,給出綜合的評(píng)估。

“Dubbo的面試題有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)站標(biāo)題:Dubbo的面試題有哪些
標(biāo)題來(lái)源:http://m.rwnh.cn/article20/jcjdco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、關(guān)鍵詞優(yōu)化外貿(mào)建站、企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
鄂托克前旗| 无为县| 右玉县| 新平| 衡水市| 永宁县| 康乐县| 甘南县| 洛宁县| 公主岭市| 荆州市| 宁明县| 宝鸡市| 安丘市| 怀宁县| 柏乡县| 栖霞市| 永福县| 黔西| 博兴县| 荔波县| 阿勒泰市| 锦屏县| 武宁县| 晋江市| 建昌县| 阳信县| 瓦房店市| 苍溪县| 巢湖市| 金秀| 澎湖县| 长汀县| 海口市| 汝南县| 满城县| 诸暨市| 金坛市| 庆元县| 辽阳县| 工布江达县|