當前位置:首頁 >求職指導(dǎo) >

文章來源:其他網(wǎng)絡(luò)   我要投稿  




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




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


LeastActive LoadBalance: 最少活躍調(diào)用策略,解決慢提供者接收更少的請求; ConstantHash LoadBalance: 一致性 Hash 策略,使相同參數(shù)請求總是發(fā)到同一提供者,一臺機器宕機,可以基于虛擬節(jié)點,分攤至其他提供者,避免引起提供者的劇烈變動;













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



RoundRobin LoadBalance: 輪循選取提供者策略,平均分布,但是存在請求累積的問題;



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


a. 檢查連接的注冊中心是否正確






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



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


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





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




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


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






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


  廣州招聘會上出現(xiàn)了這樣一幕:一位女大學(xué)7192生為了請招聘單位給一份工作,"噗嗵"一聲跪在這家招聘單位的桌前,雙手舉著簡歷,遞給對方,眼神中流露出誠懇和哀求。招聘方也被她這一舉動驚呆了。






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


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


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





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



13、在使用過程中都遇到了些什么問題? 如何解決的?






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



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


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



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


webservice:基于 WebService 的遠程調(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ù)多于消費者,需要給應(yīng)用程序和瀏覽器 JS 調(diào)用; hessian: 集成 Hessian 服務(wù),基于 HTTP 通訊,采用 Servlet 暴露服務(wù),Dubbo 內(nèi)嵌 Jetty 作為服務(wù)器時默認實現(xiàn),提供與 Hession 服務(wù)互操作。多個短連接,同步 HTTP 傳輸,Hessian 序列化,傳入?yún)?shù)較大,提供者大于消費者,提供者壓力較大,可傳文件;















17、Dubbo 集群的負載均衡有哪些策略  







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





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






 新人求職:切勿亂出招



情景回放: 招聘會中的下跪一幕









2) dubbo 缺省會在啟動時檢查依賴是否可用,不可用就拋出異常,阻止 spring 初始化完成,check 屬性默認為 true。



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



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



1) 同時配置了 XML 和 properties 文件,則 properties 中的配置無效





dubbo: 單一長連接和 NIO 異步通訊,適合大并發(fā)小數(shù)據(jù)量的服務(wù)調(diào)用,以及消費者遠大于提供者。傳輸協(xié)議 TCP,異步,Hessian 序列化;




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



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


4) spring 2.x 初始化死鎖問題。







 




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



只有 XML 沒有配置時,properties 才生效。



 


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








 新人求職:切勿亂出招

















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

官方微博:@全影網(wǎng) https://weibo.com/7192com

官方微信:想在手機上獲取最新鮮資訊嗎?添加全影網(wǎng)官方微信:www7192com

免責(zé)聲明:

本站部分內(nèi)容、觀點、圖片、文字、視頻來自網(wǎng)絡(luò),僅供大家學(xué)習(xí)和交流,真實性、完整性、及時性本站不作任何保證或承諾。如果本站有涉及侵犯您的版權(quán)、著作權(quán)、肖像權(quán)的內(nèi)容,請聯(lián)系我們(0536-8337192),我們會立即審核并處理。

關(guān)鍵詞: 死鎖

我要評論

當前已有loading...個參與
驗證碼: 驗證碼,看不清楚?請點擊刷新驗證碼

名企招聘

人才求職

婚紗攝影

人才網(wǎng)X 關(guān)閉

掃描訪問手機版