挖坑題!Dubbo 和 Spring Cloud Gateway 有什么區(qū)別?
共 2941字,需瀏覽 6分鐘
·
2024-08-07 13:25
此答案節(jié)選自我們最近弄的面試鴨刷題神器,更多企業(yè)常問面試題,可以點擊下面的小程序進(jìn)行閱讀哈!
回答重點
Dubbo 是一個 RPC(遠(yuǎn)程過程調(diào)用)框架,主要用于服務(wù)之間的通信。它提供高性能的 RPC 調(diào)用、負(fù)載均衡、服務(wù)發(fā)現(xiàn)、服務(wù)注冊、服務(wù)治理等功能。
適用于需要高性能 RPC 調(diào)用的分布式系統(tǒng),常用于內(nèi)部服務(wù)通信。
Spring Cloud Gateway 是一個 API 網(wǎng)關(guān),用于處理外部客戶端請求并將其路由到后端服務(wù)。它提供請求路由、負(fù)載均衡、協(xié)議轉(zhuǎn)換、安全管理、流量控制、日志和監(jiān)控等功能。
適用于微服務(wù)架構(gòu)中的統(tǒng)一入口管理,常用于外部請求的入口層。
所以說 它們不是一個層級的東西。(這其實就是一個挖坑題 )
擴(kuò)展 Dubbo 與 SpringCloud 對比
我們來看下 Dubbo 官網(wǎng)自己對于 SpringCloud 的對比供大家參考,以下內(nèi)容來自 Dubbo官網(wǎng)
從上圖我們可以看出,Dubbo 和 Spring Cloud 有很多相似之處,它們都在整個架構(gòu)圖的相同位置并提供一些相似的功能。
-
Dubbo 和 Spring Cloud 都側(cè)重在對分布式系統(tǒng)中常見問題模式的抽象(如服務(wù)發(fā)現(xiàn)、負(fù)載均衡、動態(tài)配置等),同時對每一個問題都提供了配套組件實現(xiàn),形成了一套微服務(wù)整體解決方案,讓使用 Dubbo 及 Spring Cloud 的用戶在開發(fā)微服務(wù)應(yīng)用時可以專注在業(yè)務(wù)邏輯開發(fā)上。 -
Dubbo 和 Spring Cloud 都完全兼容 Spring 體系的應(yīng)用開發(fā)模式,Dubbo 對 Spring 應(yīng)用開發(fā)框架、Spring Boot 微服務(wù)框架都做了很好的適配,由于 Spring Cloud 出自 Spring 體系,在這一點上自然更不必多說。
雖然兩者有很多相似之處,但由于它們在誕生背景與架構(gòu)設(shè)計上的巨大差異,兩者在性能、適用的微服務(wù)集群規(guī)模、生產(chǎn)穩(wěn)定性保障、服務(wù)治理等方面都有很大差異。
Spring Cloud 的優(yōu)勢在于:
-
同樣都支持 Spring 開發(fā)體系的情況下,Spring Cloud 得到更多的原生支持 -
對一些常用的微服務(wù)模式做了抽象如服務(wù)發(fā)現(xiàn)、動態(tài)配置、異步消息等,同時包括一些批處理任務(wù)、定時任務(wù)、持久化數(shù)據(jù)訪問等領(lǐng)域也有涉獵。 -
基于 HTTP 的通信模式,加上相對比較完善的入門文檔和演示 demo 和 starters,讓開發(fā)者在第一感覺上更易于上手
Spring Cloud 的問題有:
-
只提供抽象模式的定義不提供官方穩(wěn)定實現(xiàn),開發(fā)者只能尋求類似 Netflix、Alibaba、Azure 等不同廠商的實現(xiàn)套件,而每個廠商支持的完善度、穩(wěn)定性、活躍度各異 -
有微服務(wù)全家桶卻不是能拿來就用的全家桶,demo 上手容易,但落地推廣與長期使用的成本非常高 -
欠缺服務(wù)治理能力,尤其是流量管控方面如負(fù)載均衡、流量路由方面能力都比較弱 -
編程模型與通信協(xié)議綁定 HTTP,在性能、與其他 RPC 體系互通上存在障礙 -
總體架構(gòu)與實現(xiàn)只適用于小規(guī)模微服務(wù)集群實踐,當(dāng)集群規(guī)模增長后就會遇到地址推送效率、內(nèi)存占用等各種瓶頸的問題,但此時遷移到其他體系卻很難實現(xiàn) -
很多微服務(wù)實踐場景的問題需要用戶獨自解決,比如優(yōu)雅停機、啟動預(yù)熱、服務(wù)測試,再比如雙注冊、雙訂閱、延遲注冊、服務(wù)按分組隔離、集群容錯等
而以上這些點,都是 Dubbo 的優(yōu)勢所在:
-
完全支持 Spring & Spring Boot 開發(fā)模式,同時在服務(wù)發(fā)現(xiàn)、動態(tài)配置等基礎(chǔ)模式上提供與 Spring Cloud 對等的能力 -
是企業(yè)級微服務(wù)實踐方案的整體輸出,Dubbo 考慮到了企業(yè)微服務(wù)實踐中會遇到的各種問題如優(yōu)雅上下線、多注冊中心、流量管理等,因此其在生產(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è)計上突出服務(wù)服務(wù)治理能力,如權(quán)重動態(tài)調(diào)整、標(biāo)簽路由、條件路由等,支持 Proxyless 等多種模式接入 Service Mesh 體系 高性能的 RPC 協(xié)議編碼與實現(xiàn) -
Dubbo 是在超大規(guī)模微服務(wù)集群實踐場景下開發(fā)的框架,可以做到百萬實例規(guī)模的集群水平擴(kuò)容,應(yīng)對集群增長帶來的各種問題 -
Dubbo 提供 Java 外的多語言實現(xiàn),使得構(gòu)建多語言異構(gòu)的微服務(wù)體系成為可能
最后
今晚 19.30 我們的編程導(dǎo)航官號會在抖 y 平臺進(jìn)行模擬面試直播,包含簡歷指導(dǎo)、學(xué)習(xí)路線規(guī)劃以及八股文的拷打,有興趣的小伙伴直接抖音搜【編程導(dǎo)航】,或保存下方圖片,打開抖y掃描下方二維碼:
最后再推薦下我們目前努力在做的 面試小程序神器,已經(jīng)近 5000 道面試題目啦,歡迎大家來閱讀!如果大家有不會的面試題,也可以在小程序內(nèi)反饋!鴨鴨會第一時間為大家解答!
除了小程序版本,我們 web 端也上線啦:www.mianshiya.com
歡迎關(guān)注面試鴨,每日獲取經(jīng)典面試題和優(yōu)質(zhì)題解,我們下期見~
