dubbo provider异步_dubbo九连问你知道多少?
以下文章來(lái)源于公眾號(hào)“程序員求職之路”
1.Dubbo 支持哪些協(xié)議,每種協(xié)議的應(yīng)用場(chǎng)景,優(yōu)缺點(diǎn)?
dubbo:單一長(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é)議。
2.Dubbo 超時(shí)時(shí)間怎樣設(shè)置?
Dubbo超時(shí)時(shí)間設(shè)置有兩種方式:
服務(wù)提供者端設(shè)置超時(shí)時(shí)間,在Dubbo的用戶文檔中,推薦如果能在服務(wù)端多配置就盡量多配置,因?yàn)榉?wù)提供者比消費(fèi)者更清楚自己提供的服務(wù)特性。
服務(wù)消費(fèi)者端設(shè)置超時(shí)時(shí)間,如果在消費(fèi)者端設(shè)置了超時(shí)時(shí)間,以消費(fèi)者端 為主,即優(yōu)先級(jí)更高。因?yàn)榉?wù)調(diào)用方設(shè)置超時(shí)時(shí)間控制性更靈活。如果消 費(fèi)方超時(shí),服務(wù)端線程不會(huì)定制,會(huì)產(chǎn)生警告。
3.Dubbo 有些哪些注冊(cè)中心?
Multicast 注冊(cè)中心:Multicast注冊(cè)中心不需要任何中心節(jié)點(diǎn),只要廣播地 址,就能進(jìn)行服務(wù)注冊(cè)和發(fā)現(xiàn)。基于網(wǎng)絡(luò)中組播傳輸實(shí)現(xiàn);
Zookeeper注冊(cè)中心:基于分布式協(xié)調(diào)系統(tǒng)Zookeeper實(shí)現(xiàn),采用Zookeeper的watch機(jī)制實(shí)現(xiàn)數(shù)據(jù)變更;
redis 注冊(cè)中心:基于 redis 實(shí)現(xiàn),采用 key/Map 存儲(chǔ),住 key 存儲(chǔ)服務(wù)名 和類型,Map 中 key 存儲(chǔ)服務(wù) URL,value 服務(wù)過(guò)期時(shí)間。基于 redis 的 發(fā) 布/訂閱模式通知數(shù)據(jù)變更;
Simple 注冊(cè)中心
4.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)傊疗渌峁┱?#xff0c;避免引起提供者的劇烈變動(dòng);
5.Dubbo 是什么?
Dubbo 是一個(gè)分布式、高性能、透明化的 RPC 服務(wù)框架,提供服務(wù)自動(dòng) 注冊(cè)、自動(dòng)發(fā)現(xiàn)等高效服務(wù)治理方案,可以和 Spring 框架無(wú)縫集成。
6.Dubbo 的主要應(yīng)用場(chǎng)景?
透明化的遠(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ù)提供者。
7.Dubbo 的核心功能?
主要就是如下 3 個(gè)核心功能:
Remoting:網(wǎng)絡(luò)通信框架,提供對(duì)多種 NIO 框架抽象封裝,包括“同步轉(zhuǎn)異步”和“請(qǐng)求-響應(yīng)”模式的信息交換方式。
Cluster:服務(wù)框架,提供基于接口方法的透明遠(yuǎn)程過(guò)程調(diào)用,包括多協(xié)議支 持,以及軟負(fù)載均衡,失敗容錯(cuò),地址路由,動(dòng)態(tài)配置等集群支持。
Registry:服務(wù)注冊(cè),基于注冊(cè)中心目錄服務(wù),使服務(wù)消費(fèi)方能動(dòng)態(tài)的查找 服務(wù)提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機(jī)器。
8.Dubbo 的核心組件?
9. Dubbo 服務(wù)注冊(cè)與發(fā)現(xiàn)的流程?
流程說(shuō)明:
Provider(提供者)綁定指定端口并啟動(dòng)服務(wù)
指供者連接注冊(cè)中心,并發(fā)本機(jī) IP、端口、應(yīng)用信息和提供服務(wù)信息發(fā)送至注冊(cè)中心存儲(chǔ)
Consumer(消費(fèi)者),連接注冊(cè)中心 ,并發(fā)送應(yīng)用信息、所求服務(wù)信息至注冊(cè)中心 ;
注冊(cè)中心根據(jù)消費(fèi)者所求服務(wù)信息匹配對(duì)應(yīng)的提供者列表發(fā)送至 Consumer 應(yīng)用緩存。
Consumer 在發(fā)起遠(yuǎn)程調(diào)用時(shí)基于緩存的消費(fèi)者列表?yè)衿湟话l(fā)起調(diào)用。Provider 狀態(tài)變更會(huì)實(shí)時(shí)通知注冊(cè)中心、在由注冊(cè)中心實(shí)時(shí)推送至 Consumer設(shè)計(jì)的原因:
Consumer 與 Provider 解偶,雙方都可以橫向增減節(jié)點(diǎn)數(shù)。
注冊(cè)中心對(duì)本身可做對(duì)等集群,可動(dòng)態(tài)增減節(jié)點(diǎn),并且任意一臺(tái)宕掉 后,將自動(dòng)切換到另一臺(tái)去中心化,雙方不直接依懶注冊(cè)中心,即使注冊(cè)中心全部宕機(jī)短時(shí)間7內(nèi)也不會(huì)影響服務(wù)的調(diào)用 。
服務(wù)提供者無(wú)狀態(tài),任意一臺(tái)宕掉后,不影響使用。
你所想、知你所需,后臺(tái)回復(fù)「面試題庫(kù)」,做足功課為自己的面試交出滿意答卷吧。
http://weixin.qq.com/r/3R3G3jXEeWgGrXG990jP (二維碼自動(dòng)識(shí)別)
總結(jié)
以上是生活随笔為你收集整理的dubbo provider异步_dubbo九连问你知道多少?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: verilog设计简易正弦波信号发生器_
- 下一篇: python程序文件扩展名有_pytho