国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

RPC是什么?為什么要學(xué)習(xí)RPC?

開(kāi)發(fā) 開(kāi)發(fā)工具
隨著近幾年分布式、微服務(wù)架構(gòu)的火熱,RPC在開(kāi)發(fā)工作中使用的越來(lái)越多,也變的越來(lái)越重要。今天我們來(lái)看RPC是什么,為什么要了解RPC,通過(guò)學(xué)習(xí)RPC我們能掌握什么內(nèi)容?

隨著近幾年分布式、微服務(wù)架構(gòu)的火熱,RPC在開(kāi)發(fā)工作中使用的越來(lái)越多,也變的越來(lái)越重要。

今天我們來(lái)看RPC是什么,為什么要了解RPC,通過(guò)學(xué)習(xí)RPC我們能掌握什么內(nèi)容?

什么是「RPC」

RPC 全稱 Remote Procedure Call, wikipedia的部分說(shuō)明:

RPC is a request–response protocol. An RPC is initiated by the client , which sends a request message to a known remote server to execute a specified procedure with supplied parameters. The remote server sends a response to the client, and the application continues its process.

首先這里的重點(diǎn)是「protocol」,其次是 RPC中的R -「Remote」。所以這里的RPC的意義是一個(gè)調(diào)用執(zhí)行遠(yuǎn)程方法的協(xié)議。我們對(duì)于方法的調(diào)用一般類似這樣

 

  1. Echo echo = child.say("Hello World"); 

這種一般是指調(diào)用自己本地的方法,比如 Java 應(yīng)用是指調(diào)用在同一個(gè) JVM 內(nèi)的方法。

如果上述的代碼要換成我們以RPC的形式去調(diào)用,寫法有什么區(qū)別呢?

其實(shí)是沒(méi)有的。

我們?cè)谡{(diào)用時(shí)仍然按這個(gè)形式,僅需要在配置中指定這個(gè)方法對(duì)應(yīng)的「遠(yuǎn)程地址」即可。

再舉個(gè)生活化的例子。

假設(shè)你是招攬游客的小販。每次集齊了游客你都在賣力的吆喝,在各種神奇的網(wǎng)站的搜索,找對(duì)應(yīng)景點(diǎn)的導(dǎo)游。后來(lái)有一天,你和街邊多個(gè)打印店談了合作。符合條件可以導(dǎo)對(duì)應(yīng)景點(diǎn)的都可以在打印店「登記」,你下次來(lái)的時(shí)候根據(jù)記錄,直接「聯(lián)系」對(duì)應(yīng)的人即可,省力不少哇。

這里我們看到兩種RPC的使用形式:

  • 直接在配置中固定寫好遠(yuǎn)程方法的地址,請(qǐng)求是一步到位
  • 在配置中提供的「注冊(cè)處」的地址,方法請(qǐng)求時(shí)先到注冊(cè)處查方法地址再執(zhí)行

看到這里,你不禁要說(shuō),調(diào)用個(gè)遠(yuǎn)程方法嘛,又不難,有啥看的。

那我們繼續(xù)這個(gè)生活化的例子。

在你集齊了游客聯(lián)系經(jīng)常合作的導(dǎo)游時(shí),他生病了。你要找誰(shuí)? 你說(shuō)我有「?jìng)浞荨孤铮怯浱幱涗浟撕枚嗄亍?/p>

那好,這好多個(gè)導(dǎo)游里,你「選哪一個(gè)」?

你說(shuō),靠,我那管那么多,隨便挑一個(gè)打電話就是了。好,這時(shí)你就已經(jīng)在用到了RPC中的「負(fù)載均衡LoadBalance」了,只不過(guò)你的策略是用的「隨機(jī)」。

如果在導(dǎo)游登記的時(shí)候每個(gè)提供了照片和歷史認(rèn)證評(píng)級(jí),那你可能不會(huì)隨便挑一個(gè)打,可能會(huì)看看照片,哪個(gè)感覺(jué)更靠譜,哪個(gè)評(píng)級(jí)更高。此時(shí)這些項(xiàng)都做為你聯(lián)系他的一個(gè)「權(quán)重」。在多個(gè)導(dǎo)游間,這個(gè)權(quán)重決定了被聯(lián)系次數(shù)的多少。此時(shí)你的LB不再是簡(jiǎn)單隨機(jī),而是根據(jù)「權(quán)重」進(jìn)行。

再比如你們合作多次,固定的幾個(gè)景點(diǎn)就是固定的幾個(gè)導(dǎo)游,老相識(shí),每次帶人來(lái)都找他。此時(shí)你的策略又變成了「一致性Hash」。

后來(lái),有導(dǎo)游和你說(shuō),最近像他們這類自找生意的導(dǎo)游,被發(fā)現(xiàn)在主動(dòng)拉生意,可能會(huì)罰款,下次聯(lián)系他的時(shí)候別說(shuō)那么多。于是你們訂了個(gè)簡(jiǎn)單「協(xié)議」:先說(shuō)「0或1」,代表是否空閑,再說(shuō)「1到100」代表你們所帶游客游覽的景點(diǎn)。再說(shuō)「0或1」代表是否可以帶購(gòu)物。

你會(huì)發(fā)現(xiàn),此時(shí)你們的協(xié)議里有「編碼」,有壓縮,每個(gè)人在聽(tīng)到對(duì)方信息時(shí),需要再在你這里解碼,還原成真實(shí)的信息。在 RPC 里也一樣,在方法調(diào)用前,需要將對(duì)應(yīng)的參數(shù)序列化,以指定的「格式」傳遞,到達(dá)后再對(duì)應(yīng)的還原回去執(zhí)行方法。

過(guò)了一段時(shí)間,你的業(yè)務(wù)發(fā)展壯大,一個(gè)景區(qū)附近的導(dǎo)游們自動(dòng)組隊(duì)。在你請(qǐng)求到達(dá)時(shí),這個(gè)景區(qū)的導(dǎo)游里自動(dòng)根據(jù)上面的權(quán)重選一個(gè)人出來(lái),這些導(dǎo)游組成的,就是一個(gè)「Cluster」

業(yè)務(wù)發(fā)展的同時(shí),你成立了一個(gè)秘書團(tuán),這些人負(fù)責(zé)過(guò)一段時(shí)間聯(lián)系一下各個(gè)導(dǎo)游組,判斷這個(gè)景區(qū)是否能提供,這個(gè)時(shí)候,秘書團(tuán)就在進(jìn)行「監(jiān)控」。

(一口老血,編不下去了……)

接下來(lái)要說(shuō)的是,我們?yōu)槭裁匆獙W(xué)習(xí) RPC。

為什么要學(xué)習(xí) RPC

為什么要學(xué)習(xí) RPC呢? 我們開(kāi)頭時(shí)也提到,微服務(wù)、分布式應(yīng)用的開(kāi)發(fā)越來(lái)越常見(jiàn), RPC 是其中相當(dāng)重要的組件。通過(guò) RPC 的學(xué)習(xí),可以更好的理解和進(jìn)行較大型應(yīng)用的設(shè)計(jì)與開(kāi)發(fā)。

同時(shí), RPC 中涉及到的各類技術(shù),也會(huì)使學(xué)習(xí)者知識(shí)面更寬廣,每個(gè)方面,都值得深入。而對(duì)于技術(shù),特別是源碼的學(xué)習(xí),又會(huì)返過(guò)來(lái)促使更好的理解 RPC,你寫出更好的代碼。

學(xué)習(xí) RPC 我們能掌握什么

我們上面的生活化例子中,提到了這些技術(shù)

  • 注冊(cè)處
  • 集群
  • 負(fù)載均衡
  • 協(xié)議
  • 序列化編碼、解碼
  • 一致性Hash
  • 監(jiān)控
  • ……

這些技術(shù),也是 RPC 中很重要的一些內(nèi)容。 我們看 Dubbo 的源碼中,從代碼的組織上,也能一窺究竟。

這張圖里,比我們?cè)谏厦胬永锾岬降募夹g(shù),多一些「Filter」,「Config」還有「Remoting」,包含了更完整的 RPC 的配置管理,請(qǐng)求過(guò)濾,多協(xié)議支持等內(nèi)容。

而對(duì) RPC 學(xué)習(xí),例如負(fù)載均衡,除技術(shù)之外,還可以學(xué)習(xí)一種思想,是一種可遷移的東西。這種負(fù)載均衡的使用和實(shí)現(xiàn),在 Nginx、Apache 做反向代理,在 應(yīng)用服務(wù)器做集群搭建時(shí),都會(huì)用的到。

像一致性Hash,對(duì)于通過(guò) Hash思想來(lái)實(shí)現(xiàn)請(qǐng)求均衡的實(shí)現(xiàn)中,一致性 Hash 的思路,能更大程度的保證請(qǐng)求 Hash到原來(lái)的服務(wù)器上,在增減服務(wù)器時(shí),影響減小。

再比如「注冊(cè)處」Registry 中,我們可以了解到通過(guò) zk, redis,甚至廣播 的注冊(cè)處實(shí)現(xiàn)。這種注冊(cè)處的學(xué)習(xí),可以在我們后續(xù)的微服務(wù),分布式應(yīng)用中常用的「注冊(cè)中心」提供實(shí)現(xiàn)的思路。

再比如 我們遠(yuǎn)程調(diào)用時(shí)參數(shù)、信息的序列化,我們 Java 默認(rèn)的序列化在性能上不能滿足 RPC 這種高頻序列化的應(yīng)用場(chǎng)景,那有什么好的辦法來(lái)提升序列化性能呢?

你會(huì)發(fā)現(xiàn) Dubbo 中集成了 kryo,hessian2,fastjson等支持,可以比較學(xué)習(xí)這些不同的序列化實(shí)現(xiàn),在自己的業(yè)務(wù)場(chǎng)景中有需要時(shí),就發(fā)現(xiàn)你的技能工具箱中又多了一件工具。

類似的內(nèi)容還有很多,學(xué)習(xí)這些都能讓我們更好的成長(zhǎng)。

【本文為51CTO專欄作者“侯樹(shù)成”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)『Tomcat那些事兒』獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2022-06-07 08:39:35

RPCHTTP

2016-09-22 16:06:21

微服務(wù)架構(gòu)RPC框架

2020-11-25 09:36:17

HTTPRPC遠(yuǎn)程

2023-10-23 11:07:37

HTTPRPC

2022-07-19 08:01:32

HTTP協(xié)議RPC

2023-09-07 08:07:56

goHTTP網(wǎng)絡(luò)

2012-06-18 14:51:09

Python

2017-04-05 18:10:05

R語(yǔ)言開(kāi)發(fā)Ross

2015-05-12 11:04:42

Java EE學(xué)習(xí)Java EE

2010-01-20 14:03:12

C++程序

2010-01-22 15:14:37

學(xué)習(xí)C++

2021-03-08 11:28:59

人工智能深度學(xué)習(xí)Python

2020-11-30 15:40:40

技術(shù)資訊

2020-12-11 07:39:37

RPC MQ架構(gòu)

2010-01-21 10:34:08

SUN-JAVA認(rèn)證

2015-05-25 15:31:56

C語(yǔ)言學(xué)習(xí)和使用 C 語(yǔ)言

2013-03-12 14:30:09

Ubuntu操作系統(tǒng)

2015-08-06 10:14:15

造輪子facebook

2022-08-15 08:27:02

基站網(wǎng)絡(luò)

2023-12-07 12:21:04

GCJVM垃圾
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

xvideos亚洲| 污污网站免费看| 91国在线高清视频| 在线看福利影| yy6080久久伦理一区二区| 亚洲成av人片乱码色午夜| 日韩成人av网| 亚洲精品亚洲人成在线观看| 上原亚衣av一区二区三区| av中文一区| 日韩欧美一区二区在线观看| 国产精品污污网站在线观看 | 成人福利片在线| 欧美日本在线播放| 亚洲国产资源| 中文字幕日韩一区二区| 国产欧美日韩在线视频| 污色网站在线观看| 激情懂色av一区av二区av| xxxxx日韩| 一区二区三区视频观看| 亚洲黄色a v| 国产日韩欧美精品一区| 国产精品免费观看| 欧美激情aaaa| 五月婷婷导航| 一本一道久久a久久精品逆3p| 亚洲小说欧美另类社区| 香蕉网站在线观看| 国产在线拍揄自揄视频不卡99| 国产午夜亚洲精品午夜鲁丝片 | 欧美日本一道本| 黄色av成人| 粉嫩一区二区三区国产精品| 日本aⅴ大伊香蕉精品视频| 欧美激情一区二区三区不卡| 精品欧美午夜寂寞影院| 久久国产情侣| 国产精品久久国产三级国电话系列| 在线视频综合导航| 性欧美暴力猛交另类hd| 91九色在线播放| 日韩精品丝袜在线| 99国产欧美另类久久久精品| jizzjizzjizz欧美| www免费在线观看视频| 国产99久久精品一区二区永久免费 | 国产精品区二区三区日本| 色88888久久久久久影院野外| 中文字幕日韩欧美精品高清在线| 亚洲美女又黄又爽在线观看| 国产91精品免费| 亚洲最大在线| 免费av网站在线看| 国产主播自拍av| 国产精品第七十二页| 欧美日韩国产综合久久| 美女看a上一区| 日韩免费在线| 成人h在线观看| 欧美中文在线| 日韩极品视频在线观看| 亚洲一区二区在线| 超碰精品一区二区三区乱码| 国产喂奶挤奶一区二区三区| 在线播放不卡| 亚洲精品一二三**| 成年人在线观看| 亚洲精品a级片| 97se狠狠狠综合亚洲狠狠| 国产欧美日韩精品一区二区免费| 午夜免费视频在线国产| 欧美 日韩 国产一区| 99视频在线播放| 浅井舞香一区二区| 亚洲人成电影网站色xx| 欧美性视频一区二区三区| 精品一区二区在线观看| 亚洲一区二区日韩| 深夜日韩欧美| 欧美1级2级| 快射视频在线观看| 中国大陆高清aⅴ毛片| 无码人妻精品一区二区蜜桃网站| 亚洲综合在线播放| 欧美亚洲一区在线| 国产一区二区美女视频| 美腿丝袜亚洲三区| 亚洲成av人影片在线观看| 老太脱裤让老头玩ⅹxxxx| 久久精品国产一区二区三区日韩| 2019中文字幕在线| 97超级碰在线看视频免费在线看| 尤物九九久久国产精品的特点 | www.亚洲资源| 毛片在线看片| 欧美aaa免费| 蜜桃视频在线网站| 99久久亚洲国产日韩美女| 校园春色亚洲色图| 17videosex性欧美| 国产精品186在线观看在线播放| 亚洲卡一卡二| 国模私拍一区二区三区| 亚洲欧美日韩天堂| 精品久久久999| 午夜精品一区二区三区在线| 日本电影亚洲天堂| 国产精品久久久久久久一区探花| 国产精品久久在线观看| 国产一区二区三区av在线| 9191精品国产综合久久久久久| 欧美mv日韩mv国产网站| 亚洲精品在线看| 2019av中文字幕| 96国产粉嫩美女| 国产盗摄视频在线观看| 东北一级毛片| 91美女视频在线| 午夜成人免费电影| 国产精品一区二区性色av| 国产精品成人aaaaa网站| 亚洲va久久久噜噜噜| 精品在线视频一区二区| 日韩一级在线免费观看| 神马电影在线观看| 性欧美18xxxhd| 国产精品99久久精品| 蜜桃久久久久久| 成人av在线电影| 欧美系列日韩一区| 欧美激情一级二级| 狠狠色综合色区| 欧美亚洲黄色片| 91在线高清| 亚洲妇女av| 久久久不卡网国产精品二区| 日韩三级电影视频| 69国产精品成人在线播放| 日本中文字幕成人| 午夜精品福利一区二区| 最近中文视频在线| 亚洲a∨精品一区二区三区导航| 欧美日韩专区| 国产精品久久久久久福利一牛影视| 欧美不卡激情三级在线观看| 成人国产精品免费视频| 久久精品中文字幕电影| 国产制服91一区二区三区制服| 日本中文字幕一区二区有码在线| 9999精品视频| 老牛国产精品一区的观看方式| 亚洲午夜久久久久久久久久久| 欧美激情精品久久久久久| 欧美这里只有精品| 免费毛片b在线观看| 免费精品99久久国产综合精品| 欧美伊人久久久久久久久影院| 国产精品高清免费在线观看| 欧美一级黄色影院| 2020国产精品小视频| 国产乱色国产精品免费视频| 日韩一区二区免费视频| 国产欧美日韩在线播放| 韩国精品视频| 久久xxxx精品视频| 中文欧美字幕免费| jizz亚洲女人高潮大叫| 精品人妻一区二区三区四区在线| segui88久久综合| 久久99最新地址| 欧美成aaa人片免费看| 亚洲电影有码| 欧美国产偷国产精品三区| 欧美v国产在线一区二区三区| 9l视频自拍九色9l视频成人| 亚洲高清网站| 欧美性高跟鞋xxxxhd| 国产97色在线|日韩| 久久久久久久久久久免费视频| 国产福利在线观看| heyzo久久| 一区二区三区欧美视频| 欧美成人午夜激情在线| 免费在线观看的毛片| 欧美日韩国产网站| 成人中文字幕合集| 蜜臀久久99精品久久久久久宅男| 18岁网站在线观看| 香蕉成人影院| 97精品视频在线| www.男人天堂网| 国产乱码精品一区二区三区亚洲人 | 久久一综合视频| 日韩资源在线观看| 免费在线激情视频| 天堂久久av| 91福利在线观看| 日本精品福利视频| 激情综合网站|