1. 挖坑題!Dubbo 和 Spring Cloud Gateway 有什么區(qū)別?

        共 2941字,需瀏覽 6分鐘

         ·

        2024-08-07 13:25

        此答案節(jié)選自我們最近弄的面試鴨刷題神器,更多企業(yè)常問面試題,可以點(diǎn)擊下面的小程序進(jìn)行閱讀哈!


        回答重點(diǎn)

        Dubbo 是一個(gè) RPC(遠(yuǎn)程過程調(diào)用)框架,主要用于服務(wù)之間的通信。它提供高性能的 RPC 調(diào)用、負(fù)載均衡、服務(wù)發(fā)現(xiàn)、服務(wù)注冊(cè)、服務(wù)治理等功能。

        適用于需要高性能 RPC 調(diào)用的分布式系統(tǒng),常用于內(nèi)部服務(wù)通信。

        Spring Cloud Gateway 是一個(gè) API 網(wǎng)關(guān),用于處理外部客戶端請(qǐng)求并將其路由到后端服務(wù)。它提供請(qǐng)求路由、負(fù)載均衡、協(xié)議轉(zhuǎn)換、安全管理、流量控制、日志和監(jiān)控等功能。

        適用于微服務(wù)架構(gòu)中的統(tǒng)一入口管理,常用于外部請(qǐng)求的入口層。

        所以說 它們不是一個(gè)層級(jí)的東西。(這其實(shí)就是一個(gè)挖坑題 

        擴(kuò)展 Dubbo 與 SpringCloud 對(duì)比

        我們來看下 Dubbo 官網(wǎng)自己對(duì)于 SpringCloud 的對(duì)比供大家參考,以下內(nèi)容來自 Dubbo官網(wǎng)

        從上圖我們可以看出,Dubbo 和 Spring Cloud 有很多相似之處,它們都在整個(gè)架構(gòu)圖的相同位置并提供一些相似的功能。

        • Dubbo 和 Spring Cloud 都側(cè)重在對(duì)分布式系統(tǒng)中常見問題模式的抽象(如服務(wù)發(fā)現(xiàn)、負(fù)載均衡、動(dòng)態(tài)配置等),同時(shí)對(duì)每一個(gè)問題都提供了配套組件實(shí)現(xiàn),形成了一套微服務(wù)整體解決方案,讓使用 Dubbo 及 Spring Cloud 的用戶在開發(fā)微服務(wù)應(yīng)用時(shí)可以專注在業(yè)務(wù)邏輯開發(fā)上。
        • Dubbo 和 Spring Cloud 都完全兼容 Spring 體系的應(yīng)用開發(fā)模式,Dubbo 對(duì) Spring 應(yīng)用開發(fā)框架、Spring Boot 微服務(wù)框架都做了很好的適配,由于 Spring Cloud 出自 Spring 體系,在這一點(diǎn)上自然更不必多說。

        雖然兩者有很多相似之處,但由于它們?cè)谡Q生背景與架構(gòu)設(shè)計(jì)上的巨大差異,兩者在性能、適用的微服務(wù)集群規(guī)模、生產(chǎn)穩(wěn)定性保障、服務(wù)治理等方面都有很大差異。

        Spring Cloud 的優(yōu)勢(shì)在于:

        • 同樣都支持 Spring 開發(fā)體系的情況下,Spring Cloud 得到更多的原生支持
        • 對(duì)一些常用的微服務(wù)模式做了抽象如服務(wù)發(fā)現(xiàn)、動(dòng)態(tài)配置、異步消息等,同時(shí)包括一些批處理任務(wù)、定時(shí)任務(wù)、持久化數(shù)據(jù)訪問等領(lǐng)域也有涉獵。
        • 基于 HTTP 的通信模式,加上相對(duì)比較完善的入門文檔和演示 demo 和 starters,讓開發(fā)者在第一感覺上更易于上手

        Spring Cloud 的問題有:

        • 只提供抽象模式的定義不提供官方穩(wěn)定實(shí)現(xiàn),開發(fā)者只能尋求類似 Netflix、Alibaba、Azure 等不同廠商的實(shí)現(xiàn)套件,而每個(gè)廠商支持的完善度、穩(wěn)定性、活躍度各異
        • 有微服務(wù)全家桶卻不是能拿來就用的全家桶,demo 上手容易,但落地推廣與長期使用的成本非常高
        • 欠缺服務(wù)治理能力,尤其是流量管控方面如負(fù)載均衡、流量路由方面能力都比較弱
        • 編程模型與通信協(xié)議綁定 HTTP,在性能、與其他 RPC 體系互通上存在障礙
        • 總體架構(gòu)與實(shí)現(xiàn)只適用于小規(guī)模微服務(wù)集群實(shí)踐,當(dāng)集群規(guī)模增長后就會(huì)遇到地址推送效率、內(nèi)存占用等各種瓶頸的問題,但此時(shí)遷移到其他體系卻很難實(shí)現(xiàn)
        • 很多微服務(wù)實(shí)踐場(chǎng)景的問題需要用戶獨(dú)自解決,比如優(yōu)雅停機(jī)、啟動(dòng)預(yù)熱、服務(wù)測(cè)試,再比如雙注冊(cè)、雙訂閱、延遲注冊(cè)、服務(wù)按分組隔離、集群容錯(cuò)等

        而以上這些點(diǎn),都是 Dubbo 的優(yōu)勢(shì)所在:

        • 完全支持 Spring & Spring Boot 開發(fā)模式,同時(shí)在服務(wù)發(fā)現(xiàn)、動(dòng)態(tài)配置等基礎(chǔ)模式上提供與 Spring Cloud 對(duì)等的能力
        • 是企業(yè)級(jí)微服務(wù)實(shí)踐方案的整體輸出,Dubbo 考慮到了企業(yè)微服務(wù)實(shí)踐中會(huì)遇到的各種問題如優(yōu)雅上下線、多注冊(cè)中心、流量管理等,因此其在生產(chǎn)環(huán)境的長期維護(hù)成本更低
        • 在通信協(xié)議和編碼上選擇更靈活,包括 rpc 通信層協(xié)議如 HTTP、HTTP/2(Triple、gRPC)、TCP 二進(jìn)制協(xié)議、rest等,序列化編碼協(xié)議Protobuf、JSON、Hessian2 等,支持單端口多協(xié)議
        • Dubbo 從設(shè)計(jì)上突出服務(wù)服務(wù)治理能力,如權(quán)重動(dòng)態(tài)調(diào)整、標(biāo)簽路由、條件路由等,支持 Proxyless 等多種模式接入 Service Mesh 體系 高性能的 RPC 協(xié)議編碼與實(shí)現(xiàn)
        • Dubbo 是在超大規(guī)模微服務(wù)集群實(shí)踐場(chǎng)景下開發(fā)的框架,可以做到百萬實(shí)例規(guī)模的集群水平擴(kuò)容,應(yīng)對(duì)集群增長帶來的各種問題
        • Dubbo 提供 Java 外的多語言實(shí)現(xiàn),使得構(gòu)建多語言異構(gòu)的微服務(wù)體系成為可能


        最后

        今晚 19.30 我們的編程導(dǎo)航官號(hào)會(huì)在抖 平臺(tái)進(jìn)行模擬面試直播,包含簡(jiǎn)歷指導(dǎo)、學(xué)習(xí)路線規(guī)劃以及八股文的拷打,有興趣的小伙伴直接抖音搜【編程導(dǎo)航】,或保存下方圖片,打開抖y掃描下方二維碼:

        最后再推薦下我們目前努力在做的 面試小程序神器,已經(jīng)近 5000 道面試題目啦,歡迎大家來閱讀!如果大家有不會(huì)的面試題,也可以在小程序內(nèi)反饋!鴨鴨會(huì)第一時(shí)間為大家解答!

        除了小程序版本,我們 web 端也上線啦:www.mianshiya.com


        歡迎關(guān)注面試鴨,每日獲取經(jīng)典面試題和優(yōu)質(zhì)題解,我們下期見~

        瀏覽 278
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 打白嫩光屁股调教拍击, | 精品一区二区视频 | 天天干小说 | 黄免费观看 | 做爰全过程叫床的视频免费 |