面試 Dubbo ,卻問我和 SpringCloud 有什么區(qū)別?
閱讀本文大概需要 7 分鐘。
來自:blog.csdn.net/u011709538/article/details/131450031
Dubbo 、Springcloud? 這兩有關(guān)系?
-
前言 -
一、RPC 框架的概念 -
什么是RPC框架 -
RPC 和 普通通信 的區(qū)別 -
二、常用 RPC 框架 -
Dubbo -
gRPC -
Thrift -
Feign -
三、dubbo 與 Springcloud -
Dubbo 的模型 -
Springcloud -
dubbo 與 Springcloud 的區(qū)別
1前言
Dubbo 和 Springcloud 有什么區(qū)別?
2RPC 框架的概念
1. 什么是RPC框架
RPC(Remote Procedure Call - 遠程調(diào)用) 是一種客戶端和服務(wù)器端之間遠程通信的模式,通過這種模式可以使得不同的進程、甚至不同的機器之間可以像調(diào)用本地函數(shù)一樣調(diào)用遠程函數(shù)。RPC框架就是一套實現(xiàn)RPC協(xié)議的軟件框架,用于簡化遠程調(diào)用的過程,讓開發(fā)者可以更方便地進行遠程調(diào)用操作。
-
遠程調(diào)用接口定義: 定義遠程調(diào)用的函數(shù)、參數(shù)和返回值,通常使用IDL(接口定義語言)進行定義。 -
遠程調(diào)用代理: 用于將本地調(diào)用轉(zhuǎn)化為遠程調(diào)用,同時負責處理對遠程調(diào)用的參數(shù)的序列化和反序列化。 -
傳輸協(xié)議: 用于在客戶端和服務(wù)器之間傳輸遠程調(diào)用的請求和響應,通常使用TCP或HTTP協(xié)議。 -
服務(wù)注冊與發(fā)現(xiàn): 用于將服務(wù)注冊到注冊中心,并讓客戶端發(fā)現(xiàn)可用的服務(wù)。 -
負載均衡: 用于管理多個服務(wù)提供者,并將請求均衡地分配給它們,以提高系統(tǒng)的穩(wěn)定性和可用性
2. RPC 和 普通通信 的區(qū)別
為什么我們會有RPC 這種說法,”前臺訪問后臺“ 這種模式算不算 RPC?
-
技術(shù)實現(xiàn)方式不同:
-
調(diào)用方式不同:
-
服務(wù)定位方式不同:
-
數(shù)據(jù)傳輸方式不同:
需要注意的是,還是那句話,RPC是手段,更是思想,并不規(guī)定其具體的實現(xiàn)方式,上述也只是通常情況下RPC的特征。
3常用 RPC 框架
-
特點:輕量級、高性能、多協(xié)議、多語言、豐富的治理能力
-
特點:跨語言、高性能、基于Protocol Buffers數(shù)據(jù)格式、支持多種平臺、支持流式數(shù)據(jù)傳輸
-
特點:跨語言、高性能、多協(xié)議、多語言、支持異步調(diào)用、支持服務(wù)發(fā)現(xiàn)和負載均衡
-
特點:高性能、基于接口定義、多種編碼方式、集成負載均衡、支持斷路器
4dubbo 與 Springcloud
1. Dubbo 的模型
-
調(diào)用者先部署,怎么能拿到被調(diào)用方的IP并配置呢 -
調(diào)用的序列化協(xié)議、傳輸協(xié)議怎么確定 -
被調(diào)用方是集群,該怎么處理調(diào)用的邏輯 -
被調(diào)用方宕機,怎么自動切換另一臺 -
同步或非同步的調(diào)用都需要自己實現(xiàn)
2. Springcloud
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
Spring Cloud 為開發(fā)人員提供了在分布式系統(tǒng)中快速構(gòu)建一些常見模式的工具(例如配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、領(lǐng)導選舉、分布式會話、集群狀態(tài))。分布式系統(tǒng)的協(xié)調(diào)導致了樣板模式,使用 Spring Cloud 開發(fā)人員可以快速建立實現(xiàn)這些模式的服務(wù)和應用程序。它們可以在任何分布式環(huán)> > 境中很好地工作,包括開發(fā)人員自己的筆記本電腦、裸機數(shù)據(jù)中心和托管平臺,如Cloud Foundry。
-
分布式/版本化配置 -
服務(wù)注冊和發(fā)現(xiàn) -
路由 -
服務(wù)到服務(wù)呼叫 -
負載平衡 -
斷路器 -
全局鎖 -
領(lǐng)導層選舉和集群狀態(tài) -
分布式消息傳遞
-
https://spring.io/projects/spring-cloud
3. dubbo 與 Springcloud 的區(qū)別
Dubbo 和 Springcloud 有什么區(qū)別?
推薦閱讀:
還在使用 RestTemplate?來了解一下官方推薦的 WebClient !
Java8 Stream 一行代碼實現(xiàn)數(shù)據(jù)分組統(tǒng)計、排序、最大值、最小值、平均值、總數(shù)、合計
互聯(lián)網(wǎng)初中高級大廠面試題(9個G) 內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper......等技術(shù)棧!
?戳閱讀原文領(lǐng)取! 朕已閱
評論
圖片
表情

