大家好,如果您還對(duì)dubbo工作原理和機(jī)制不太了解,沒(méi)有關(guān)系,今天就由本站為大家分享dubbo工作原理和機(jī)制的知識(shí),包括dubbo spi機(jī)制的問(wèn)題都會(huì)給大家分析到,還望可以解決大家的問(wèn)題,下面我們就開(kāi)始吧!
dubbo和zookeeper常見(jiàn)面試題
1.Dubbo的工作流程是什么?
答:Dubbo的工作流程包括:provider向注冊(cè)中心去注冊(cè)自己為一個(gè)服務(wù),consumer去注冊(cè)中心訂閱服務(wù),注冊(cè)中心會(huì)通知consumer注冊(cè)好的服務(wù),consumer會(huì)將provider的地址等信息拉取到本地緩存,consumer去調(diào)用provider,consumer和provider都異步的通知監(jiān)控中心。
2.Dubbo的通信原理是什么?
答:Dubbo底層使用hessian2進(jìn)行二進(jìn)制序列化進(jìn)行遠(yuǎn)程調(diào)用,Dubbo底層使用Netty框架進(jìn)行異步通信。
3.Dubbo負(fù)載均衡策略有哪些?
答:Dubbo負(fù)載均衡策略包括:randomloadbalance、roundrobinloadbalance、leastactiveloadbalance、consistanthashloadbalance等。
4.ZooKeeper是什么?有什么作用?
答:ZooKeeper是一個(gè)分布式協(xié)調(diào)服務(wù),可以用于分布式應(yīng)用程序的協(xié)調(diào)和管理。它提供了一個(gè)分布式的、開(kāi)放的、可靠的數(shù)據(jù)存儲(chǔ),用于存儲(chǔ)和管理分布式應(yīng)用程序的配置信息、命名服務(wù)、狀態(tài)信息等。
5.ZooKeeper的特點(diǎn)是什么?
答:ZooKeeper的特點(diǎn)包括:高可用性、高性能、數(shù)據(jù)一致性、順序訪問(wèn)、可靠性、容錯(cuò)性等。
6.ZooKeeper的工作原理是什么?
答:ZooKeeper的工作原理是基于ZAB協(xié)議,它將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,并將數(shù)據(jù)同步到所有的ZooKeeper服務(wù)器上,保證數(shù)據(jù)的一致性。ZooKeeper使用了一種基于觀察者模式的機(jī)制,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),會(huì)通知所有的觀察者。
7.ZooKeeper的節(jié)點(diǎn)類(lèi)型有哪些?
答:ZooKeeper的節(jié)點(diǎn)類(lèi)型包括:持久節(jié)點(diǎn)、臨時(shí)節(jié)點(diǎn)、持久順序節(jié)點(diǎn)、臨時(shí)順序節(jié)點(diǎn)。
8.ZooKeeper如何保證數(shù)據(jù)的一致性?
答:ZooKeeper使用了ZAB協(xié)議來(lái)保證數(shù)據(jù)的一致性,它將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,并將數(shù)據(jù)同步到所有的ZooKeeper服務(wù)器上,保證數(shù)據(jù)的一致性。
如何看待阿里的dubbo項(xiàng)目的“復(fù)活”
2018年1月8日夜間,Dubbo創(chuàng)始人之一梁飛在Dubbo交流群里透露了Dubbo3.0正在動(dòng)工的消息。百度百科上說(shuō):Dubbo是阿里巴巴公司開(kāi)源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無(wú)縫集成。知乎上的答友說(shuō):1.Dubbo負(fù)載均衡是對(duì)外提供一個(gè)公共地址,請(qǐng)求過(guò)來(lái)時(shí)通過(guò)輪詢(xún)、隨機(jī)等,路由到不同server。目的分?jǐn)倝毫ΑJ湓前l(fā)現(xiàn)一臺(tái)server掛了,就讓另外一臺(tái)去服務(wù)了。跟餐館換個(gè)服務(wù)員繼續(xù)招待你一樣;2.Dubbo是Java下的一套R(shí)PC框架(soa思想),作用就是統(tǒng)一管理配置,各個(gè)系統(tǒng)服務(wù)間的調(diào)用。dubbo在淘寶也是解決他們實(shí)際問(wèn)題的,不一定適合其他。另外各家公司也都有大同小異的實(shí)現(xiàn),所以沒(méi)多少人用、也就沒(méi)多少介紹。原理就是:A系統(tǒng)調(diào)用B系統(tǒng)接口服務(wù),后面就是怎么把這個(gè)流程,動(dòng)態(tài)化(zookeeper通知)、權(quán)限化、配置化、低耦合化、自動(dòng)化??傊篋ubbo是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。簡(jiǎn)單的說(shuō),dubbo就是個(gè)服務(wù)框架,如果沒(méi)有分布式的需求,其實(shí)是不需要用的,只有在分布式的時(shí)候,才有dubbo這樣的分布式服務(wù)框架的需求。據(jù)了解,新的Dubbo內(nèi)核與Dubbo2.0完全不同,但它兼容2.0。Dubbo3.0將以Streaming為內(nèi)核,而不再是2.0時(shí)代的RPC,但是RPC會(huì)在3.0中變成遠(yuǎn)程Streaming對(duì)接的一種可選形態(tài)。梁飛給出了一個(gè)內(nèi)核接口:Streamingdocking(Streaming),他說(shuō)一切服務(wù)治理將圍繞這個(gè)內(nèi)核接口進(jìn)行擴(kuò)展。而Streaming通道與gRPC類(lèi)似,支持HTTP/2,同時(shí)REST接口也會(huì)受到一等公民支持,但是梁飛也表示此次在通訊上的改動(dòng)并不大,重點(diǎn)是在服務(wù)治理和編程模型上。說(shuō)到編程模型的革新,梁飛透露,此次Dubbo3.0能夠開(kāi)工,主要也是因?yàn)樾绿匦詫⑷サ粢磺凶枞浴耙磺型健睘榈谝荒繕?biāo),在對(duì)IO密集業(yè)務(wù)的處理上,它能夠提高機(jī)器利用率,使得一半機(jī)器的成本被節(jié)省下來(lái)。他還表示,其實(shí)Dubbo3.0技術(shù)選型重大變更的驅(qū)動(dòng)因素,也就是降低成本,因?yàn)樵趯⑾到y(tǒng)服務(wù)化后,全業(yè)務(wù)線的機(jī)器都在等待返回?cái)?shù)據(jù),負(fù)載壓不上去,機(jī)器浪費(fèi)嚴(yán)重。這個(gè)去阻塞化的模式,其實(shí)就是使用了“反應(yīng)式編程”模式(ReactiveProgramming),梁飛介紹,在Dubbo3.0中,reactive將成為核心,會(huì)做到客戶(hù)端、服務(wù)端、緩存和數(shù)據(jù)庫(kù),全程無(wú)阻塞。在數(shù)據(jù)庫(kù)上,JDBC驅(qū)動(dòng)將進(jìn)行更改,同時(shí),為了性能,還會(huì)配合使用阿里畢玄對(duì)JVM協(xié)程的改造。更為重要的是,這個(gè)重大變更,不僅體現(xiàn)在Dubbo上,它也將影響到阿里10年來(lái)積累的中間件。群里有人問(wèn)到是否會(huì)采用ServiceMesh,梁飛表示,Dubbo3.0將支持可選mesh,多加一層IPC,這主要是為了兼容老系統(tǒng);而內(nèi)部則會(huì)優(yōu)先嘗試內(nèi)嵌模式。他說(shuō)代理模式Ops可獨(dú)立升級(jí)框架,減少業(yè)務(wù)侵入,而內(nèi)嵌模式可以帶業(yè)務(wù)測(cè)試、部署節(jié)點(diǎn)少、穩(wěn)定性檢測(cè)方便。同時(shí),可以將Dubbo3.0啟動(dòng)為獨(dú)立進(jìn)程,由dubbo-mesh進(jìn)行IPC,路由、負(fù)載均衡和熔斷機(jī)制將由獨(dú)立進(jìn)程控制。據(jù)說(shuō),目前Dubbo3.0已正式投入全職開(kāi)發(fā)梯隊(duì),初步Runtime已在驗(yàn)證,3月底將在線上應(yīng)用投入使用。自去年11月份阿里公開(kāi)宣布重啟維護(hù)Dubbo之后,大家一直在關(guān)注著Dubbo的進(jìn)展。今天這樣一個(gè)小道消息的爆出,讓大家很是興奮,希望Dubbo真正完成涅磐重生!DubboGitHub地址:https://github.com/alibaba/dubbo(本資訊同步發(fā)布于:https://mp.weixin.qq.com/s/PpH9xoj0FZAbjKHkA57AAw,http://www.52im.net/article-282-1.html)
好了,文章到此結(jié)束,希望可以幫助到大家。