dubbo 大白話系列-服務(wù)暴露的本質(zhì)

前言

在我不了解一項(xiàng)技術(shù)時慈参,我特別痛恨技術(shù)文檔里那些故弄玄虛的詞输枯,因?yàn)樗麜驌粑覍W(xué)習(xí)的積極性 。在我掌握了一項(xiàng)技術(shù)后券坞,我發(fā)現(xiàn)他們都是紙老虎 鬓催。在我深入理解一項(xiàng)技術(shù)后,我發(fā)現(xiàn)這些詞并不是在故弄玄虛恨锚,因?yàn)闆]有比它更簡潔的表達(dá)宇驾。這個系列會用最白話的方式來闡述dubbo里的方方面面

1. 什么是服務(wù)暴露

先來看一段 dubbo provider 的配置

<bean id=“xxxService” class=“com.xxx.XxxServiceImpl” /> //spring 中一個普通的java bean
<dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” /> //將spring中普通的java bean 轉(zhuǎn)化為dubbo provider

這是一段很常見spring dubbo 配置(基于注解、API編程也是等價的)猴伶,在很多分析dubbo原理的文章里课舍,在分析這段配置背后的邏輯時,經(jīng)常會蹦出來一個詞 —— 服務(wù)暴露

2. 用大白話解釋下 “服務(wù)暴露”

先允許我把你們當(dāng)做剛?cè)腴T的小白他挎,我們先從源頭說起 ……

本地方法調(diào)用 vs 遠(yuǎn)程方法調(diào)用(RPC)

public class Test {
    @Autowired
    UserService userService ;
    
    public void addUser(){
        User user = new User();
        userService.addUser(user); 
    }
}

這是一段很簡單的代碼吧筝尾,userServiceaddUser 方法負(fù)責(zé)增加用戶

那么請問 userService.addUser(user); 這行代碼中的 userService 對象是在哪兒呢? 有可能就是在當(dāng)前JVM 堆里办桨,也有可能他只是個傀儡筹淫,真正的執(zhí)行是在遠(yuǎn)程,比如在美國的一臺電腦上

如果userService就是在當(dāng)前JVM里呢撞,那么這行代碼就是最普通的調(diào)用——本地方法調(diào)用

如果userService真正的邏輯執(zhí)行是在遠(yuǎn)程贸街,本地的只是個傀儡,那么這行代碼就是遠(yuǎn)程方法調(diào)用

dubbo 里的方法調(diào)用方式就是這一類RPC遠(yuǎn)程調(diào)用狸相,比如: userService.addUser(user); 如果這里的 userService 是dubbo 的consumer 薛匪,那么本質(zhì)上userService就是個傀儡,真正 addUser(user) 這個動作是要在遠(yuǎn)程執(zhí)行的

本地的dubbo consumer 執(zhí)行 userService.addUser(user); 的時候脓鹃,首先會收集所需的各種信息(userService 這個class逸尖, addUser 方法,user對象信息等),在把這些收集到的信息序列化成 byte 字節(jié)流娇跟,userService 這個傀儡會負(fù)責(zé)把字節(jié)流通過網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程岩齿,遠(yuǎn)程收到這些信息后,會反序列化還原這些信息苞俘。于是乎遠(yuǎn)程那個真正的userService就知道要去調(diào)哪個類的哪個方法盹沈,入?yún)⑹鞘裁吹龋h(yuǎn)程就真正執(zhí)行 addUser(user) 這個邏輯

問題的出現(xiàn)

看完上面一段敘述吃谣,突然發(fā)現(xiàn)一個問題: 本地的userService 這個傀儡怎么知道這個所謂的 遠(yuǎn)程 在哪里捌蚍狻?最起碼他要知道遠(yuǎn)程的 ip地址和端口號吧岗憋,不然怎么發(fā)起網(wǎng)絡(luò)連接呢肃晚,怎么傳輸收集到的字節(jié)流呢?

一個最簡單的思路 仔戈,首先遠(yuǎn)程那個真正的userService需要把自己暴露給外界关串,他需要在遠(yuǎn)程監(jiān)聽一個ip、端口號监徘,然后把這個ip晋修、端口號放到一個公共的地方(所有人都能訪問),這樣本地的傀儡在發(fā)起網(wǎng)絡(luò)連接的時候凰盔,可以先到這個公共的地方查一下飞蚓,根據(jù)查到的ip、端口發(fā)起網(wǎng)絡(luò)連接

3. 暴露的本質(zhì)

綜上廊蜒,得出暴露的本質(zhì)就是: dubbo provider端監(jiān)聽一個ip趴拧、端口號,并注冊到公共地方(zk)

知道這個本質(zhì)了山叮,看源碼還不簡單么

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末著榴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屁倔,更是在濱河造成了極大的恐慌脑又,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锐借,死亡現(xiàn)場離奇詭異问麸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钞翔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門严卖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人布轿,你說我怎么就攤上這事哮笆±床” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵稠肘,是天一觀的道長福铅。 經(jīng)常有香客問我,道長项阴,這世上最難降的妖魔是什么滑黔? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮环揽,結(jié)果婚禮上略荡,老公的妹妹穿的比我還像新娘。我一直安慰自己薯演,他們只是感情好撞芍,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布秧了。 她就那樣靜靜地躺著跨扮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪验毡。 梳的紋絲不亂的頭發(fā)上衡创,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音晶通,去河邊找鬼璃氢。 笑死,一個胖子當(dāng)著我的面吹牛狮辽,可吹牛的內(nèi)容都是我干的一也。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼喉脖,長吁一口氣:“原來是場噩夢啊……” “哼椰苟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起树叽,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舆蝴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后题诵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洁仗,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年性锭,在試婚紗的時候發(fā)現(xiàn)自己被綠了赠潦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡草冈,死狀恐怖祭椰,靈堂內(nèi)的尸體忽然破棺而出臭家,到底是詐尸還是另有隱情,我是刑警寧澤方淤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布钉赁,位于F島的核電站,受9級特大地震影響携茂,放射性物質(zhì)發(fā)生泄漏你踩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一讳苦、第九天 我趴在偏房一處隱蔽的房頂上張望带膜。 院中可真熱鬧,春花似錦鸳谜、人聲如沸膝藕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芭挽。三九已至,卻和暖如春蝗肪,著一層夾襖步出監(jiān)牢的瞬間袜爪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工薛闪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辛馆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓豁延,卻偏偏與公主長得像昙篙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诱咏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容