1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Dubbo35個面試題,總會被問到!

        共 4406字,需瀏覽 9分鐘

         ·

        2021-07-17 16:59


        點(diǎn)擊“程序員面試吧”,選擇“星標(biāo)??”

        下拉至文末”查看更多

           鏈接:https://blog.csdn.net/qq_14958051/article/details/106516664

        1.什么是Dubbo?

        Dubbo是基于Java的高性能輕量級的RPC分布式服務(wù)框架,現(xiàn)已成為 Apache 基金會孵化項(xiàng)目。

        官網(wǎng):http://dubbo.apache.org/en-us/

        2.為什么要使用Dubbo?

        背景:

        隨著互聯(lián)網(wǎng)的快速發(fā)展,Web應(yīng)用程序的規(guī)模不斷擴(kuò)大,最后我們發(fā)現(xiàn)傳統(tǒng)的垂直體系結(jié)構(gòu)(整體式)已無法解決。分布式服務(wù)體系結(jié)構(gòu)和流計(jì)算體系結(jié)構(gòu)勢在必行,迫切需要一個治理系統(tǒng)來確保體系結(jié)構(gòu)的有序發(fā)展。

        • 開源免費(fèi)
        • 一些核心業(yè)務(wù)被提取并作為獨(dú)立的服務(wù)提供服務(wù),逐漸形成一個穩(wěn)定的服務(wù)中心,這樣前端應(yīng)用程序就可以更好地響應(yīng)變化多端的市場需求
        • 分布式框架能承受更大規(guī)模的流量
        • 內(nèi)部基于netty性能高

        3.Dubbo提供了哪3個關(guān)鍵功能?

        基于接口的遠(yuǎn)程調(diào)用

        容錯和負(fù)載均衡

        自動服務(wù)注冊和發(fā)現(xiàn)

        4.你知道哪些機(jī)構(gòu)在用Dubbo嗎?

        image-20200423105332840

        5.Dubbo服務(wù)的關(guān)鍵節(jié)點(diǎn)有哪些?

        image-20200423105925624

        6.說一下Dubbo服務(wù)注冊流程?

        1. 服務(wù)容器負(fù)責(zé)啟動,加載,運(yùn)行服務(wù)提供者。
        2. 服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
        3. 服務(wù)消費(fèi)者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
        4. 注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者。
        5. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
        6. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。

        7.能畫一下服務(wù)注冊流程圖嗎?

        image-20200423110344448

        8.Dubbo架構(gòu)的特點(diǎn)?

        連通性、健壯性、伸縮性、以及向未來架構(gòu)的升級性。

        9.對jdk的最小版本需求?

        jdk1.6+

        10.注冊中心的選擇?

        一般來說選中Zookeeper更穩(wěn)定更合適。

        除了Zookeeper還有Redis注冊中心、Multicast注冊中心、Simple注冊中心。

        11.Dubbo的核心配置?用途?

        image-20200423111538534

        12.配置優(yōu)先級規(guī)則?

        image-20200423112118958

        優(yōu)先級從高到低:

        • JVM -D參數(shù),當(dāng)你部署或者啟動應(yīng)用時,它可以輕易地重寫配置,比如,改變dubbo協(xié)議端口;
        • XML, XML中的當(dāng)前配置會重寫dubbo.properties中的;
        • Properties,默認(rèn)配置,僅僅作用于以上兩者沒有配置時。

        13.如何用代碼方式繞過注冊中心點(diǎn)對點(diǎn)直連?


         
        ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); // 此實(shí)例很重,封裝了與注冊中心的連接以及與提供者的連接,請自行緩存,否則可能造成內(nèi)存和連接泄漏
        // 如果點(diǎn)對點(diǎn)直連,可以用reference.setUrl()指定目標(biāo)地址,設(shè)置url后將繞過注冊中心,
        // 其中,協(xié)議對應(yīng)provider.setProtocol()的值,端口對應(yīng)provider.setPort()的值,
        // 路徑對應(yīng)service.setPath()的值,如果未設(shè)置path,缺省path為接口名
        reference.setUrl("dubbo://10.20.130.230:20880/com.xxx.XxxService"); 
         

        14.Dubbo配置來源有幾種?分別是?

        4種

        • JVM System Properties,-D參數(shù)
        • Externalized Configuration,外部化配置
        • ServiceConfig、ReferenceConfig等編程接口采集的配置
        • 本地配置文件dubbo.properties

        15.如何禁用某個服務(wù)的啟動檢查?

        <dubbo:reference interface = "com.foo.BarService" check = "false" />

        16.Dubbo 負(fù)載均衡策略?默認(rèn)是?

        • 隨機(jī)負(fù)載平衡(默認(rèn))

        • RoundRobin負(fù)載平衡

        • 最小活動負(fù)載平衡

        • 一致的哈希負(fù)載平衡

        17.上線兼容老版本?

        多版本號(version)

        18.開發(fā)測試環(huán)境,想繞過注冊中心如何配置?

        • xml
         <dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" />

        • -D

          java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890
        • .properties

          java -Ddubbo.resolve.file=xxx.properties
        com.alibaba.xxx.XxxService=dubbo://localhost:20890

        19.集群容錯幾種方法?

        image-20200423121735540

        20.Dubbo有幾種配置方式?

        1. Spring
        2. Java API

        21.Dubbo有哪些協(xié)議?推薦?

        • dubbo://(推薦)
        • rmi://
        • hessian://
        • http://
        • webservice://
        • thrift://
        • memcached://
        • redis://
        • rest://

        22.Dubbo使用什么通信框架?

        dubbo使用netty。

        23.dubbo協(xié)議默認(rèn)端口號?http協(xié)議默認(rèn)端口?hessian?rmi?

        • dubbo:20880
        • http:80
        • hessian:80
        • rmi:80

        24.Dubbo默認(rèn)序列化框架?其他的你還知道?

        • dubbo協(xié)議缺省為hessian2
        • rmi協(xié)議缺省為java
        • http協(xié)議缺省為json

        25.一個服務(wù)有多重實(shí)現(xiàn)時,如何處理?

        可以用group分組,服務(wù)提供方和消費(fèi)放都指定同一個group。

        26.Dubbo服務(wù)調(diào)用默認(rèn)是阻塞的?還有其他的?

        默認(rèn)是同步等待結(jié)果阻塞的,同時也支持異步調(diào)用。

        Dubbo 是基于 NIO 的非阻塞實(shí)現(xiàn)并行調(diào)用,客戶端不需要啟動多線程即可完成并行調(diào)用多個遠(yuǎn)程服務(wù),相對多線程開銷較小,異步調(diào)用會返回一個 Future 對象。

        27.Dubbo服務(wù)追蹤解決方案?

        • Zipkin
        • Pinpoint
        • SkyWalking

        28.Dubbo不維護(hù)了嗎?Dubbo和Dubbox有什么區(qū)別?

        現(xiàn)在進(jìn)入了Apache,由apache維護(hù)。

        Dubbox是當(dāng)當(dāng)?shù)臄U(kuò)展項(xiàng)目。

        29.Dubbox有什么新功能?

        • 支持REST風(fēng)格遠(yuǎn)程調(diào)用(HTTP + JSON/XML)

        • 支持基于Kryo和FST的Java高效序列化實(shí)現(xiàn)

        • 支持基于嵌入式Tomcat的HTTP remoting體系

        • 升級Spring

        • 升級ZooKeeper客戶端

        30.io線程池大小默認(rèn)?

        cpu個數(shù) + 1

        31.dubbo://協(xié)議適合什么樣的服務(wù)調(diào)用?

        采用單一長鏈接和NIO異步通訊,適用于小數(shù)量大并發(fā)的服務(wù)調(diào)用,以及服務(wù)消費(fèi)者機(jī)器數(shù)遠(yuǎn)大于服務(wù)提供者機(jī)器數(shù)的情況。

        不適合傳送大數(shù)據(jù)量的服務(wù),比如傳文件,傳視頻等,除非請求量很低。

        image-20200423154308365

        32.自動剔除服務(wù)什么原理?

        zookeeper臨時節(jié)點(diǎn),會話保持原理。

        33.從 2.0.5 版本開始,dubbo支持通過x命令來進(jìn)行服務(wù)治理?

        telnet

        34.如何用命令查看服務(wù)列表?

        telnet localhost 20880

        進(jìn)入命令行。然后執(zhí)行 ls相關(guān)命令:

        • ls: 顯示服務(wù)列表
        • ls -l: 顯示服務(wù)詳細(xì)信息列表
        • ls XxxService: 顯示服務(wù)的方法列表
        • ls -l XxxService: 顯示服務(wù)的方法詳細(xì)信息列表

        35.Dubbo框架設(shè)計(jì)是怎樣的?

        image-20200423162348971

        各層說明:

        • 「config 配置層」:對外配置接口,以 ServiceConfig, ReferenceConfig 為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類
        • 「proxy 服務(wù)代理層」:服務(wù)接口透明代理,生成服務(wù)的客戶端 Stub 和服務(wù)器端 Skeleton, 以 ServiceProxy 為中心,擴(kuò)展接口為 ProxyFactory
        • 「registry 注冊中心層」:封裝服務(wù)地址的注冊與發(fā)現(xiàn),以服務(wù) URL 為中心,擴(kuò)展接口為 RegistryFactory, Registry, RegistryService
        • 「cluster 路由層」:封裝多個提供者的路由及負(fù)載均衡,并橋接注冊中心,以 Invoker 為中心,擴(kuò)展接口為 Cluster, Directory, Router, LoadBalance
        • 「monitor 監(jiān)控層」:RPC 調(diào)用次數(shù)和調(diào)用時間監(jiān)控,以 Statistics 為中心,擴(kuò)展接口為 MonitorFactory, Monitor, MonitorService
        • 「protocol 遠(yuǎn)程調(diào)用層」:封裝 RPC 調(diào)用,以 Invocation, Result 為中心,擴(kuò)展接口為 Protocol, Invoker, Exporter
        • 「exchange 信息交換層」:封裝請求響應(yīng)模式,同步轉(zhuǎn)異步,以 Request, Response 為中心,擴(kuò)展接口為 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer
        • 「transport 網(wǎng)絡(luò)傳輸層」:抽象 mina 和 netty 為統(tǒng)一接口,以 Message 為中心,擴(kuò)展接口為 Channel, Transporter, Client, Server, Codec
        • 「serialize 數(shù)據(jù)序列化層」:可復(fù)用的一些工具,擴(kuò)展接口為 Serialization, ObjectInput, ObjectOutput, ThreadPool


        • 轉(zhuǎn)自:JAVA葵花寶典






        瀏覽 22
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            熟女乱伦小说 | 国产精品诱惑 | 国产超碰人人做人人爽aⅴ | 成人碰碰视频 | 狠狠干狠狠爱 | 成人久久久久久无码 | 天美传媒换妻黄色三级片 | 性XXXX丰满孕妇XXXX另类 | 东北操逼 | 秋霞影音 |