在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Dubbo源碼淺析(一)—RPC框架與Dubbo

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-16 15:18 ? 次閱讀

一、什么是RPC

1.1 RPC概念

RPC,Remote Procedure Call 即遠(yuǎn)程過程調(diào)用,與之相對的是本地服務(wù)調(diào)用,即LPC(Local Procedure Call)。本地服務(wù)調(diào)用比較常用,像我們應(yīng)用內(nèi)部程序**(注意此處是程序而不是方法,程序包含方法)**互相調(diào)用即為本地過程調(diào)用,而遠(yuǎn)程過程調(diào)用是指在本地調(diào)取遠(yuǎn)程過程進(jìn)行使用。

而RPC框架就是為了幫助我們在本地調(diào)用遠(yuǎn)程過程時(shí),就像調(diào)用本地過程一樣方便。

1.2 RPC與Http的關(guān)系

用一句話來總結(jié)就是:

RPC是一種概念,http是一種協(xié)議,可以認(rèn)為http是Rpc的一種實(shí)現(xiàn),或者Rpc包含了http。為什么說包含而不是相等,是因?yàn)镽pc還有很多基于自定義的Tcp的協(xié)議,例如Dubbo等,而我們常說的rpc即指的除Http之外的基于tcp自定義的協(xié)議。

1.3 關(guān)于Rpc的思考

網(wǎng)上關(guān)于Rpc與Http的相關(guān)文章并不少,很多人在解釋RPC概念時(shí)會提到其是執(zhí)行遠(yuǎn)程的方法,然后直接得出rpc包含http的結(jié)論。其實(shí)如果按照此概念去思考的話,其實(shí)并不能得出Http是Rpc的一種實(shí)現(xiàn)。因?yàn)閔ttp調(diào)用的方式,從使用者的角度來說,并不是直接調(diào)用其方法,而是按照一定的方式,完善出了一條http請求,然后交由本地客戶端進(jìn)行數(shù)據(jù)傳輸。

而相對比的,如果用過相關(guān)Rpc框架,例如Dubbo,是可以像調(diào)用本地方法一樣直接調(diào)用遠(yuǎn)程方法。而http的調(diào)用方式可以認(rèn)為是一種服務(wù)調(diào)用,而不是一種方法。

感覺文章博主應(yīng)該是有過rpc相關(guān)的使用經(jīng)驗(yàn),有點(diǎn)先入為主了。那么到底rpc與http的關(guān)系如何呢,我也思考了很久,后面發(fā)現(xiàn)應(yīng)該從定義上入手,我們既然在討論Rpc是什么,怎么能忽略最簡單的定義呢。

Remote Procedure Call ,其中"Procedure"按照谷歌翻譯有以下幾種解釋:程序、過程、步驟,并不是 方法(Method)。而程序是包含方法的,同時(shí)也包含服務(wù)。因此上文中才強(qiáng)調(diào)了是一種程序或過程,而不是方法。

1.4 Rpc框架

Rpc框架是為了幫助我們在本地服務(wù)調(diào)用遠(yuǎn)程服務(wù)時(shí)像調(diào)用本地服務(wù)一樣簡單,我們不需要關(guān)心其底層實(shí)現(xiàn),只需要配置好相應(yīng)的信息,rpc框架就會幫我們做這些事。例如在dubbo中,我們只需要配置好相應(yīng)的注冊中心與想要調(diào)用的方法,我們就可以按照本地調(diào)用的方式調(diào)用遠(yuǎn)程服務(wù)。

1.5 總結(jié)

按照我們上文的梳理過程,可以認(rèn)為Rpc是一種概念,主要有兩種實(shí)現(xiàn),一種是以http方式的服務(wù)調(diào)用,另一種是以自定義Tcp協(xié)議實(shí)現(xiàn)的方法調(diào)用方式,例如dubbo協(xié)議,當(dāng)然一般rpc框架也都支持http協(xié)議。當(dāng)然,無論是那種方式,最終都是以Tcp/Udp的方式進(jìn)行傳輸。

wKgZoma-_SiAdj3eAAA-aRPaYY0047.png

二、Rpc框架

2.1 dubbo是什么

我們上文說到Rpc框架就是幫助我們在調(diào)用遠(yuǎn)程服務(wù)時(shí)像調(diào)用本地服務(wù)一樣簡單,dubbo就是由阿里巴巴開源的一塊rpc框架。

例如,在我們想調(diào)用某個(gè)遠(yuǎn)程方法時(shí),只需要配置好相關(guān)配置,然后直接調(diào)用即可,dubbo會幫助我們將處理中間的過程。

/* 省略相關(guān)配置 */ //將配置注冊到spring @Resource private QueryPinService queryPinService; //直接使用遠(yuǎn)程方法,像調(diào)用本地服務(wù)一樣簡單 ueryPinService.getPinWithConfig(paramMap, null);

dubbo整體架構(gòu)圖如下:

wKgaoma-_SqAclUoAAA1Y8vOti0081.jpg

節(jié)點(diǎn) 說明
Provider 提供遠(yuǎn)程服務(wù)的服務(wù)提供方
Registry 注冊中心
Consumer 需要調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方
Container 服務(wù)運(yùn)行的容器
Monitor 監(jiān)控中心

作用流程大致如下:

首先服務(wù)提供者Provider 啟動然后向注冊中心注冊自己所能提供的服務(wù)。

服務(wù)消費(fèi)者Consumer 啟動向注冊中心訂閱自己所需的服務(wù)。然后注冊中心將提供者元信息通知給 Consumer, 之后 Consumer 因?yàn)橐呀?jīng)從注冊中心獲取提供者的地址,因此可以通過負(fù)載均衡選擇一個(gè) Provider 直接調(diào)用。

之后服務(wù)提供方元數(shù)據(jù)變更的話注冊中心會把變更推送給服務(wù)消費(fèi)者。

服務(wù)提供者和消費(fèi)者都會在內(nèi)存中記錄著調(diào)用的次數(shù)和時(shí)間,然后定時(shí)的發(fā)送統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。

2.2 dubbo和spring cloud的區(qū)別

首先兩者都是當(dāng)前主流的微服務(wù)框架,不過兩者也存在很多差異:

初始定位不同:SpringCloud定位為微服務(wù)架構(gòu)下的一站式解決方案,主要有網(wǎng)關(guān)、注冊中心、配置中心、監(jiān)控中心等;Dubbo 是 它的關(guān)注點(diǎn)主要在于服務(wù)的調(diào)用和治理,其中服務(wù)調(diào)用更時(shí)其核心。

生態(tài)環(huán)境不同:SpringCloud依托于Spring平臺,具備更加完善的生態(tài)體系;而Dubbo一開始只是做RPC遠(yuǎn)程調(diào)用,生態(tài)相對匱乏,現(xiàn)在逐漸豐富起來。

調(diào)用方式:SpringCloud是采用Http協(xié)議做遠(yuǎn)程調(diào)用,接口一般是Rest風(fēng)格,比較靈活;Dubbo是采用Dubbo協(xié)議,接口一般是Java的Service接口,格式固定。但調(diào)用時(shí)采用Netty的NIO方式,性能較好。

兩者組件配置:

wKgZoma-_SyAIHn7AAFTAa_Wu-o451.png

很明顯SpringCloud擁有比dubbo更完善的配置,支持的功能性也更強(qiáng)。

相比來說,SpringCloud像一臺品牌機(jī),內(nèi)部所有配置都已經(jīng)幫我們裝配好了,我們只需要開箱即用即可。而dubbo則更像是組裝機(jī),需要我們自己選擇配置,只提供了核心的計(jì)算能力,而顯示器、電源等需要我們自己裝配調(diào)試使用。

從使用者來說,新手小白更適合品牌機(jī),傻瓜式一鍵操作,就能完成我們想要的效果。而dubbo更適合電腦高手,自己裝配自己想要的組件,使用起來更順手。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    111

    瀏覽量

    11534
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29208
  • Dubbo
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    3179
收藏 人收藏

    評論

    相關(guān)推薦

    獨(dú)家專訪阿里高級技術(shù)專家北緯:Dubbo開源重啟半年來的快意江湖

    ,以及在內(nèi)部 RPC 框架Dubbo 兼容的工作中學(xué)習(xí)所得。而在正式接受Dubbo項(xiàng)目后,我又開始認(rèn)真地體系地去了解 Dubbo 。出于
    發(fā)表于 05-16 22:27

    獨(dú)家專訪阿里高級技術(shù)專家北緯:Dubbo開源重啟半年來的快意江湖

    ,以及在內(nèi)部 RPC 框架Dubbo 兼容的工作中學(xué)習(xí)所得。而在正式接受Dubbo項(xiàng)目后,我又開始認(rèn)真地體系地去了解 Dubbo 。出于
    發(fā)表于 05-16 22:27

    聊聊Dubbo - Dubbo可擴(kuò)展機(jī)制實(shí)戰(zhàn)

    摘要: 在Dubbo的官網(wǎng)上,Dubbo描述自己是個(gè)高性能的RPC框架。今天我想聊聊Dubbo
    發(fā)表于 06-04 17:33

    聊聊Dubbo - Dubbo可擴(kuò)展機(jī)制源碼解析

    很不錯(cuò)呀,接下來,我們就深入Dubbo源碼睹廬山真面目。在Dubbo可擴(kuò)展機(jī)制實(shí)戰(zhàn)中,我們了解了Dubbo擴(kuò)展機(jī)制的
    發(fā)表于 06-05 18:43

    Dubbo開源現(xiàn)狀與未來規(guī)劃

    考慮到有些同學(xué)可能對 Dubbo 不太熟悉,我先簡單介紹下 Dubbo 的工作原理和架構(gòu)。簡單的說,Dubbo 是 基于 Java 的 RPC 框架
    發(fā)表于 07-05 15:21

    攜程的 Dubbo 之路

    個(gè)請求。在高并發(fā)的情況下,服務(wù)端的連接數(shù)和線程池等資源都會比較緊張,影響到請求處理的性能。而 Dubbo 作為個(gè)高性能的 RPC 框架
    發(fā)表于 10-12 15:05

    Dubbo解析及原理淺析

    本文詳細(xì)闡述了Dubbo及其原理。Dubbo種分布式服務(wù)框架dubbo除了可以提供服務(wù)之外,還可以實(shí)現(xiàn)軟負(fù)載均衡。它還提供了兩個(gè)功能M
    的頭像 發(fā)表于 02-07 15:57 ?2846次閱讀
    <b class='flag-5'>Dubbo</b>解析及原理<b class='flag-5'>淺析</b>

    Dubbo源代碼實(shí)現(xiàn)服務(wù)調(diào)用的動態(tài)代理和負(fù)載均衡

    我們知道,Dubbo將服務(wù)調(diào)用封裝成普通的Spring的Bean,于是我們可以像使用本地的Spring Bean樣,來調(diào)用遠(yuǎn)端的Dubbo服務(wù),并有LoadBalance和Failover的功能
    發(fā)表于 03-12 14:35 ?0次下載

    服務(wù)化改造實(shí)踐()| Dubbo + ZooKeeper

    “沒有最好的技術(shù),只有最合適的技術(shù)。”我想這句話也同樣適用于微服務(wù)領(lǐng)域,沒有最好的服務(wù)框架,只有最適合自己的服務(wù)改造。在 Dubbo 的未來規(guī)劃中,除了保持自身技術(shù)上的領(lǐng)先性,關(guān)注性能、大流
    發(fā)表于 08-27 16:36 ?238次閱讀
    服務(wù)化改造實(shí)踐(<b class='flag-5'>一</b>)| <b class='flag-5'>Dubbo</b> + ZooKeeper

    dubbo-go 中的 TPS Limit 設(shè)計(jì)與實(shí)現(xiàn)

    前言 Apache Dubbo 是由阿里開源的個(gè)RPC框架,除了基本的 RPC 功能以外,還提供了
    發(fā)表于 03-17 15:27 ?640次閱讀

    Dubbo 如何成為連接異構(gòu)微服務(wù)體系的最佳服務(wù)開發(fā)框架

    從編程開發(fā)的角度來說,Apache Dubbo (以下簡稱 Dubbo )首先是RPC 服務(wù)框架,它最大的優(yōu)勢在于提供了面向接口代理的
    發(fā)表于 03-12 17:04 ?943次閱讀
    <b class='flag-5'>Dubbo</b> 如何成為連接異構(gòu)微服務(wù)體系的最佳服務(wù)開發(fā)<b class='flag-5'>框架</b>

    阿里用什么替代了dubbo

    dubbo簡介 Dubbo是阿里巴巴公司開源的個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spri
    的頭像 發(fā)表于 07-31 10:43 ?9613次閱讀

    dubbo-doc-static Dubbo文檔鏡像

    dubbo-doc-static.zip
    發(fā)表于 04-19 10:12 ?2次下載
    <b class='flag-5'>dubbo</b>-doc-static <b class='flag-5'>Dubbo</b>文檔鏡像

    Dubbo Gateway基于Java的Dubbo網(wǎng)關(guān)實(shí)現(xiàn)

    ./oschina_soft/dubbo-gateway.zip
    發(fā)表于 06-14 10:28 ?3次下載
    <b class='flag-5'>Dubbo</b> Gateway基于Java的<b class='flag-5'>Dubbo</b>網(wǎng)關(guān)實(shí)現(xiàn)

    dubbo和spring cloud區(qū)別

    RPC(遠(yuǎn)程過程調(diào)用)框架,其主要目標(biāo)是提供高性能、透明化的遠(yuǎn)程方法調(diào)用,使得應(yīng)用的各個(gè)模塊能夠像調(diào)用本地方法樣調(diào)用遠(yuǎn)程服務(wù)。Dubbo
    的頭像 發(fā)表于 12-04 14:47 ?1680次閱讀
    主站蜘蛛池模板: 美女视频黄免费| 4hu44四虎在线观看| 色你懂的| 国产日韩精品一区二区三区| 狠狠色婷婷丁香六月| 天堂资源网| chinesevideo普通话对白| 操白虎美女| 色婷婷狠狠| 99久久伊人| 国产综合视频在线| 亚洲男人的性天堂| 亚洲人成电影在在线观看网色 | 亚洲四虎影院| 国产无限资源| 午夜aa| 最新午夜宅男| 狠狠色噜噜狠狠狠| 性欧美极品| 三级在线观看视频| 都市激情综合| 黄色成人一级片| 视频在线一区二区| 你懂得在线网址| 天天做天天看夜夜爽毛片| 亚洲成a人片77777潘金莲| 天天综合色一区二区三区| 国产资源在线观看| 日日射天天射| 亚洲另类激情综合偷自拍| 女性一级全黄生活片免费看| 欧美天天爽| 国产在线视欧美亚综合| 青草视频在线观看国产| 中文日产国产精品久久| 日本在线视频二区| 韩国三级床戏合集| xvideos69日本hd| 色婷亚洲| 欧美一级特黄aaaaaa在线看片| 亚洲天堂电影在线观看|