更新時(shí)間:2023-02-15 16:22:18 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3646次
1.Dubbo 有哪些特性?
答:Dubbo 特性如下:
面向接口代理的高性能 RPC 調(diào)用:提供高性能的基于代理的遠(yuǎn)程調(diào)用能力,服務(wù)以接口為粒度,為開發(fā)者屏蔽遠(yuǎn)程調(diào)用底層細(xì)節(jié);
智能負(fù)載均衡:內(nèi)置多種負(fù)載均衡策略,智能感知下游節(jié)點(diǎn)健康狀況,顯著減少調(diào)用延遲,提高系統(tǒng)吞吐量;
服務(wù)自動(dòng)注冊(cè)與發(fā)現(xiàn):支持多種注冊(cè)中心服務(wù),服務(wù)實(shí)例上下線實(shí)時(shí)感知;
高度可擴(kuò)展能力:遵循微內(nèi)核+插件的設(shè)計(jì)原則,所有核心能力如 Protocol、Transport、Serialization 被設(shè)計(jì)為擴(kuò)展點(diǎn),平等對(duì)待內(nèi)置實(shí)現(xiàn)和第三方實(shí)現(xiàn);
運(yùn)行期流量調(diào)度:內(nèi)置條件、腳本等路由策略,通過配置不同的路由規(guī)則,輕松實(shí)現(xiàn)灰度發(fā)布,同機(jī)房優(yōu)先等功能;
可視化的服務(wù)治理與運(yùn)維:提供豐富服務(wù)治理、運(yùn)維工具:隨時(shí)查詢服務(wù)元數(shù)據(jù)、服務(wù)健康狀態(tài)及調(diào)用統(tǒng)計(jì),實(shí)時(shí)下發(fā)路由策略、調(diào)整配置參數(shù)。
2.Dubbo 有哪些核心組件?
答:Dubbo 核心組件如下:
Provider:服務(wù)提供方
Consumer:服務(wù)消費(fèi)方
Registry:服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心
Monitor:主要用來統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間
Container:服務(wù)的運(yùn)行容器
3.Dubbo 有哪些負(fù)載均衡策略?
答:Dubbo 負(fù)責(zé)均衡策略如下:
隨機(jī)負(fù)載均衡(Random LoadBalance):按權(quán)重設(shè)置隨機(jī)概率,在一個(gè)截面上碰撞的概率高,但調(diào)用量越大分布越均勻,而且按概率使用權(quán)重后也比較均勻,有利于動(dòng)態(tài)調(diào)整提供者權(quán)重;
輪詢負(fù)載均衡(RoundRobin LoadBalance):按公約后的權(quán)重設(shè)置輪詢比率,存在慢的提供者累積請(qǐng)求的問題,比如:第二臺(tái)機(jī)器很慢,但沒掛,當(dāng)請(qǐng)求調(diào)到第二臺(tái)時(shí)就卡在那,久而久之,所有請(qǐng)求都卡在調(diào)到第二臺(tái)上;
最少活躍調(diào)用數(shù)負(fù)載均衡(LeastActive LoadBalance):使用最少活躍調(diào)用數(shù),活躍數(shù)指調(diào)用前后計(jì)數(shù)差;
哈希負(fù)載均衡(ConsistentHash LoadBalance):使用哈希值轉(zhuǎn)發(fā),相同參數(shù)的請(qǐng)求總是發(fā)到同一提供者。
負(fù)載均衡配置如下 :
服務(wù)端服務(wù)級(jí)別
<dubbo:service interface="xxx" loadbalance="roundrobin" />
客戶端服務(wù)級(jí)別
<dubbo:reference interface="xxx" loadbalance="roundrobin" />
服務(wù)端方法級(jí)別
<dubbo:service interface="xxx">
<dubbo:method name="xxx" loadbalance="roundrobin"/>
</dubbo:service>
客戶端方法級(jí)別
<dubbo:reference interface="xxx">
<dubbo:method name="xxx" loadbalance="roundrobin"/>
</dubbo:reference>
4.Dubbo 不支持以下哪種協(xié)議?
A:dubbo://
B:rmi://
C:redis://
D:restful://
答:D
題目解析:restful 一直編程規(guī)范,并不是一種傳輸協(xié)議,也不被 Dubbo 支持。
5.Dubbo 默認(rèn)使用什么注冊(cè)中心,還有別的選擇嗎?
答:推薦使用 ZooKeeper 作為注冊(cè)中心,還有 Nacos、Redis、Simple 注冊(cè)中心(普通的 Dubbo 服務(wù))。
6.Dubbo 支持多注冊(cè)中心嗎?
答:Dubbo 支持同一服務(wù)向多注冊(cè)中心同時(shí)注冊(cè),或者不同服務(wù)分別注冊(cè)到不同的注冊(cè)中心上去,甚至可以同時(shí)引用注冊(cè)在不同注冊(cè)中心上的同名服務(wù)。
多注冊(cè)中心注冊(cè):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<dubbo:application name="world" />
<!-- 多注冊(cè)中心配置 -->
<dubbo:registry id="hangzhouRegistry" address="10.20.141.150:9090" />
<dubbo:registry id="qingdaoRegistry" address="10.20.141.151:9010" default="false" />
<!-- 向多個(gè)注冊(cè)中心注冊(cè) -->
<dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="hangzhouRegistry,qingdaoRegistry" />
</beans>
7.Dubbo 支持的連接方式有哪些?
答:Dubbo 支持的主要連接方式有:組播、直連和 ZooKeeper 等注冊(cè)中心。
① 組播方式 ,不需要啟動(dòng)任何中心節(jié)點(diǎn),只要廣播地址一樣,就可以互相發(fā)現(xiàn)。

組播受網(wǎng)絡(luò)結(jié)構(gòu)限制,只適合小規(guī)模應(yīng)用或開發(fā)階段使用。組播地址段:224.0.0.0 ~ 239.255.255.255
配置
<dubbo:registry address="multicast://224.5.6.7:1234" />
或
<dubbo:registry protocol="multicast" address="224.5.6.7:1234" />
為了減少廣播量,Dubbo 缺省使用單播發(fā)送提供者地址信息給消費(fèi)者,如果一個(gè)機(jī)器上同時(shí)啟了多個(gè)消費(fèi)者進(jìn)程,消費(fèi)者需聲明 unicast=false,否則只會(huì)有一個(gè)消費(fèi)者能收到消息;當(dāng)服務(wù)者和消費(fèi)者運(yùn)行在同一臺(tái)機(jī)器上,消費(fèi)者同樣需要聲明 unicast=false,否則消費(fèi)者無法收到消息,導(dǎo)致 No provider available for the service 異常:
<dubbo:registry address="multicast://224.5.6.7:1234?unicast=false" />
或
<dubbo:registry protocol="multicast" address="224.5.6.7:1234">
<dubbo:parameter key="unicast" value="false" />
</dubbo:registry>
② 直連方式 ,注冊(cè)中心本身就是一個(gè)普通的 Dubbo 服務(wù),可以減少第三方依賴,使整體通訊方式一致。
<dubbo:registry protocol="zookeeper" address="N/A" file="./.dubbo-platform"/>
將 Simple 注冊(cè)中心暴露成 Dubbo 服務(wù):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 當(dāng)前應(yīng)用信息配置 -->
<dubbo:application name="simple-registry" />
<!-- 暴露服務(wù)協(xié)議配置 -->
<dubbo:protocol port="9090" />
<!-- 暴露服務(wù)配置 -->
<dubbo:service interface="org.apache.dubbo.registry.RegistryService" ref="registryService" registry="N/A" ondisconnect="disconnect" callbacks="1000">
<dubbo:method name="subscribe"><dubbo:argument index="1" callback="true" /></dubbo:method>
<dubbo:method name="unsubscribe"><dubbo:argument index="1" callback="false" /></dubbo:method>
</dubbo:service>
<!-- 簡(jiǎn)單注冊(cè)中心實(shí)現(xiàn),可自行擴(kuò)展實(shí)現(xiàn)集群和狀態(tài)同步 -->
<bean id="registryService" class="org.apache.dubbo.registry.simple.SimpleRegistryService" />
</beans>
引用 Simple Registry 服務(wù):
<dubbo:registry address="127.0.0.1:9090" />
或者:
<dubbo:service interface="org.apache.dubbo.registry.RegistryService" group="simple" version="1.0.0" ... >
或者:
<dubbo:registry address="127.0.0.1:9090" group="simple" version="1.0.0" />
適用性說明:此 SimpleRegistryService 只是簡(jiǎn)單實(shí)現(xiàn),不支持集群,可作為自定義注冊(cè)中心的參考,但不適合直接用于生產(chǎn)環(huán)境。
③ ZooKeeper 注冊(cè)中心 ,Zookeeper 是 Apacahe Hadoop 的子項(xiàng)目,是一個(gè)樹型的目錄服務(wù),支持變更推送,適合作為 Dubbo 服務(wù)的注冊(cè)中心,工業(yè)強(qiáng)度較高,可用于生產(chǎn)環(huán)境,并推薦使用。
以上就是“2023年IT企業(yè)攻略,Java分布式架構(gòu)面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)