亚洲综合丝袜美腿_精品一区二区免费_日韩视频一区二区三区在线播放 _7878成人国产在线观看_精品一区二区三区视频在线观看_1024亚洲合集_日韩美女在线视频_欧美怡红院视频_国产一区 二区_亚洲视频 欧洲视频_99精品一区二区_亚洲va欧美va人人爽午夜_精品国产一区二区三区不卡_蜜臀av一区二区_欧美日韩精品一区二区_亚洲精品中文在线

當前位置: 首頁 > 科技新聞 >

一文詳細解讀 Dubbo 中的 Http 協議

時間:2019-11-12 19:19來源:網絡整理 瀏覽:
太陽紅彤彤,花兒五顏六色,各位讀者朋友好,又來到了分享 Dubbo 知識點的時候了。說到 Dubbo 框架支持的協議,你的第一反應是什么?大

太陽紅彤彤,花兒五顏六色,各位讀者朋友好,又來到了分享 Dubbo 知識點的時候了。說到 Dubbo 框架支持的協議,你的第一反應是什么?大概會有 Dubbo 默認支持的 dubbo 協議,以及老生常談的由當當貢獻給 Dubbo 的 rest 協議,或者是今天的主角 http。截止到目前,Dubbo 最新版本演進到了 2.7.3,已經支持了:dubbo,hessain,http,injvm,jsonrpc,memcached,native-thrift,thrift,redis,rest,rmi,webservice,xml 等協議,有些協議的使用方式還沒有補全到官方文檔中。原來 Dubbo 支持這么多協議,是不是有點出乎你的意料呢?

一文詳細解讀 Dubbo 中的 Http 協議

這么多 RPC 協議,可能有人會產生如下的疑問:rest,jsonrpc,webservice 不都是依靠 http 通信嗎?為什么還單獨有一個 http 協議?先不急著回答這個問題,而是引出今天的話題,先來介紹下 Dubbo 框架中所謂的 http 協議。

Dubbo 中的 http 協議

在 Dubbo 使用 http 協議和其他協議基本一樣,只需要指定 protocol 即可。

 

server 屬性可選值:jetty,tomcat,servlet。

配置過后,當服務消費者向服務提供者發起調用,底層便會使用標準的 http 協議進行通信。可以直接在 https://github.com/apache/dubbo-samples 中找到官方示例,其中的子模塊:dubbo-samples-http 構建了一個 http 協議調用的例子。

為避免大家誤解,特在此聲明:本文中,所有的 http 協議特指的是 dubbo 中的 http 協議,并非那個大家耳熟能詳的通用的 http 協議。

http 協議的底層原理

從默認的 dubbo 協議改為 http 協議是非常簡單的一件事,上面便是使用者視角所看到的全部的內容了,接下來我們將會探討其底層實現原理。

翻看 Dubbo 的源碼,找到 HttpProtocol 的實現,你可能會吃驚,基本就依靠 HttpProtocol 一個類,就實現了 http 協議

一文詳細解讀 Dubbo 中的 Http 協議

要知道實現自定義的 dubbo 協議,有近 30 個類!http 協議實現的如此簡單,背后主要原因有兩點:

  • remoting 層使用 http 通信,不需要自定義編解碼
  • 借助了 Spring 提供的 HttpInvoker 封裝了 refer 和 exporter 的邏輯

Spring 提供的 HttpInvoker 是何方神圣呢?的確是一個比較生僻的概念,但并不復雜,簡單來說,就是使用 Java 序列化將對象轉換成字節,通過 http 發送出去,在 server 端,Spring 能根據 Url 映射,找到容器中對應的 Bean 反射調用的過程,沒見識過它也不要緊,可以通過下面的示例快速掌握這一概念。

Spring HttpInvoker

本節內容可參見 Spring 文檔:https://docs.spring.io/spring/docs/4.3.24.RELEASE/spring-framework-reference/htmlsingle/#remoting-httpinvoker-server

下面的示例將會展示如何使用 Spring 原生的 HttpInvoker 實現遠程調用。

創建服務提供者

 

暴露服務的代碼相當簡單,需要注意兩點:

創建服務消費者

 

消費者端引用服務同樣有兩個注意點:

調用細節分析

對于 Spring HttpInvoker 的底層實現,就沒必要深究了,但大家肯定還是會好奇一些細節:dubbo 中的 http 報文體是怎么組織的?如何序列化對象的?

我們使用 Wireshark 可以抓取到客戶端發送的請求以及服務端響應的報文。

一文詳細解讀 Dubbo 中的 Http 協議

追蹤報文流,可以看到詳細的請求和響應內容

一文詳細解讀 Dubbo 中的 Http 協議

從 ContentType:application/x-java-serialized-object 和報文 Body 部分的 ASCII 碼可以看出,使用的是 Java Serialize 序列化。我們將 Body 部分導出成文件,使用 Java Serialize 反序列化響應,來驗證一下它的廬山真面目:

一文詳細解讀 Dubbo 中的 Http 協議

使用 Java Serialize 可以正常反序列化報文,得到結果是 Spring 內置的包裝類 RemoteInvocationResult,里面裝飾著實際的業務返回結果。

http 協議的意義

Dubbo 提供的眾多協議有各自適用的場景,例如

  • dubbo://,dubbo 協議是默認的協議,自定義二進制協議;單個長連接節省資源;基于 tcp,架構于 netty 之上,性能還算可以;協議設計上沒有足夠的前瞻性,不適合做 service-mesh 談不上多么優雅,但是好歹風風雨雨用了這么多年,周邊也有不少配套組件例如 dubbo2.js, dubbo-go, dubbo-cpp,一定程度解決了多語言的問題。
  • webservice://,hession://,thrift:// 等協議,基本是為了適配已有協議的服務端/客戶端,借助于 dubbo 框架的 api,可以使用其功能特性,意義不是特別大。
  • redis://,memcached:// 等協議,并非是暴露給用戶配置的協議,一般是 dubbo 自用,在注冊中心模塊中會使用到相應的擴展

所有協議的具體使用場景和其特性,我可能會單獨寫文章來分析,而如今我們要思考的是 Dubbo 提供 http 協議到底解決什么問題,什么場景下用戶會考慮使用 Dubbo 的 http 協議。

我個人認為 Dubbo 現如今的 http 協議比較雞肋,原生 http 通信的優勢在于其通用性,基本所有語言都有配套的 http 客戶端和服務端支持,但是 Dubbo 的 http 協議卻使用了 application/x-java-serialized-object 的格式來做為默認的 payload,使得其喪失了跨語言的優勢。可能有讀者會反駁:HttpInvoker 支持配置序列化格式,不能這么草率的詬病它。但其實我們所關注的恰恰是默認實現,正如 dubbo:// 協議也可以配置 fastjson 作為序列化方案,但是我們同樣不認為 dubbo:// 協議是一個優秀的跨語言方案,理由是一樣的。當然,評價一個應用層協議是否是優秀的,是否適合做 mesh 等等,需要多種方向去分析,這些我不在本文去分析。

說到底,本文花了一定的篇幅向大家介紹了 Dubbo 的 http 協議,到頭來卻是想告訴你:這是一個比較雞肋的協議,是不是有些失望呢?不要失望,dubbo 可能在 2.7.4 版本廢棄現有的 http 協議,轉而使用 jsonrpc 協議替代,其實也就是將 jsonrpc 協議換了個名字而已,而關于 jsonrpc 的細節,我將會在下一篇文章中介紹,屆時,我也會分析,為什么 jsonrpc 比現有的 http 協議更適合戴上 http 協議的帽子,至于現有的 http 協議,我更傾向于稱之為:spring-httpinvoker 協議。

總結

dubbo 現有 http 協議的意義是什么?如果你習慣于使用 Spring HttpInvoker,那或許現有的 http 協議還有一定的用處,但從 Dubbo 交流群和 Spring 文檔介紹其所花費的篇幅來看,它還是非常小眾的。同時也可以讓我們更好地認識協議發展的歷史,知道一個協議為什么存在,為什么會被淘汰。

【責任編輯:武曉燕 TEL:(010)68476606】
推薦內容
亚洲综合丝袜美腿_精品一区二区免费_日韩视频一区二区三区在线播放 _7878成人国产在线观看_精品一区二区三区视频在线观看_1024亚洲合集_日韩美女在线视频_欧美怡红院视频_国产一区 二区_亚洲视频 欧洲视频_99精品一区二区_亚洲va欧美va人人爽午夜_精品国产一区二区三区不卡_蜜臀av一区二区_欧美日韩精品一区二区_亚洲精品中文在线
波多野结衣亚洲一区| 欧美在线视频全部完| 99久久精品国产一区二区三区| 欧美男人的天堂一二区| 国产精品无人区| 美女网站一区二区| 欧美性生交片4| 亚洲欧美在线视频观看| 国产精品综合视频| 欧美一级精品大片| 午夜精品福利视频网站| 在线看国产一区| 亚洲人成精品久久久久久| 国产成人免费av在线| 久久综合久久综合久久综合| 蜜桃一区二区三区在线观看| 宅男在线国产精品| 亚洲成国产人片在线观看| 91女人视频在线观看| 国产精品国产精品国产专区不片 | 国产一区日韩二区欧美三区| 91精品国产一区二区三区香蕉| 亚洲一二三四在线观看| 色一情一乱一乱一91av| 亚洲美女电影在线| 色欧美乱欧美15图片| 亚洲黄色免费网站| 在线视频一区二区免费| 伊人夜夜躁av伊人久久| 在线观看av不卡| 亚洲午夜三级在线| 欧美日韩另类国产亚洲欧美一级| 一区二区在线看| 欧美色网站导航| 午夜欧美在线一二页| 制服丝袜在线91| 免费在线成人网| 精品国产一二三区| 国产一区二区在线免费观看| 久久久久久97三级| 高清成人在线观看| 18成人在线观看| 日本乱人伦一区| 午夜视频一区在线观看| 欧美一级二级三级蜜桃| 精品一区二区三区免费观看 | 中文字幕一区视频| 99re成人在线| 一区二区高清视频在线观看| 欧美日韩一区二区三区免费看 | 欧美日韩精品免费观看视频 | 色香蕉成人二区免费| 亚洲欧美日韩在线不卡| 91久久精品一区二区| 午夜精品久久久久久| 日韩精品一区二区三区在线播放 | 99re这里只有精品6| 亚洲精品视频免费看| 欧美日韩一区中文字幕| 美女一区二区三区在线观看| 久久久影视传媒| 99国内精品久久| 亚洲一区二区在线免费观看视频| 69堂成人精品免费视频| 精品一区二区三区视频在线观看| 欧美国产精品专区| 在线视频你懂得一区二区三区| 日韩电影在线观看网站| 337p粉嫩大胆色噜噜噜噜亚洲| 成人不卡免费av| 一区二区三区 在线观看视频| 91精品婷婷国产综合久久| 国产在线精品免费av| 最新成人av在线| 欧美日韩午夜在线| 狠狠色狠狠色合久久伊人| 亚洲欧洲成人自拍| 欧美精品成人一区二区三区四区| 韩国女主播一区二区三区| 日韩理论片在线| 欧美喷水一区二区| 国产成人夜色高潮福利影视| 亚洲免费观看在线观看| 91精品国产入口在线| 国产99久久久国产精品潘金| 亚洲综合免费观看高清完整版 | 91精品国产综合久久蜜臀| 国产真实乱对白精彩久久| ...中文天堂在线一区| 欧美日韩国产片| 国产成人精品亚洲777人妖| 亚洲一区二区成人在线观看| 久久综合成人精品亚洲另类欧美| 91尤物视频在线观看| 免费高清成人在线| 国产精品久久国产精麻豆99网站| 欧美日韩电影在线| 成人福利视频在线看| 日本一不卡视频| 自拍偷拍亚洲综合| 日韩久久精品一区| 91精品福利视频| 国产一区91精品张津瑜| 亚洲第一av色| 国产精品久久影院| 日韩欧美一区在线观看| 色婷婷综合久色| 国产精品资源网站| 偷窥国产亚洲免费视频| 中文字幕制服丝袜一区二区三区| 欧美一区二区三区喷汁尤物| 99re视频这里只有精品| 国产一区二区精品在线观看| 亚洲国产中文字幕| 中文文精品字幕一区二区| 欧美一区二区精品久久911| 色综合久久中文字幕| 国产精品一二三四| 免费在线观看成人| 亚洲综合在线免费观看| 国产欧美日韩综合精品一区二区| 3atv在线一区二区三区| 色狠狠色狠狠综合| 成a人片亚洲日本久久| 国内精品视频666| 日本欧美韩国一区三区| 一区二区三区丝袜| 国产精品不卡在线| 久久久久久久综合色一本| 51精品国自产在线| 在线观看91精品国产入口| 成人免费视频网站在线观看| 久久av老司机精品网站导航| 亚洲va国产va欧美va观看| 亚洲女同一区二区| 国产精品狼人久久影院观看方式| 久久综合网色—综合色88| 91精品国产乱| 欧美人体做爰大胆视频| 91久久线看在观草草青青| 99久久久无码国产精品| 国产精品小仙女| 国产一区在线观看视频| 久久99深爱久久99精品| 免费成人在线视频观看| 日韩中文字幕麻豆| 亚洲在线观看免费视频| 亚洲精品国产一区二区精华液| 国产精品久久综合| 国产精品人人做人人爽人人添| 国产网站一区二区| 国产色婷婷亚洲99精品小说| 久久亚洲精品小早川怜子| 精品少妇一区二区三区视频免付费 | 亚洲色图欧美在线| 国产精品每日更新| 中文字幕av资源一区| 国产欧美日韩中文久久| 国产人久久人人人人爽| 国产女人水真多18毛片18精品视频 | 日本黄色一区二区| 99久久精品国产导航| 成人综合婷婷国产精品久久| 国产精品影音先锋| 国产福利一区二区三区视频在线| 国产精品自拍一区| 国产成人8x视频一区二区| 处破女av一区二区| av电影天堂一区二区在线| 成人avav在线| 97久久精品人人爽人人爽蜜臀| 成人18视频在线播放| 91丝袜高跟美女视频| 在线观看三级视频欧美| 欧美日韩精品福利| 欧美一区二区三区喷汁尤物| 日韩欧美国产一区二区在线播放| 日韩欧美国产麻豆| 亚洲精品一区二区三区蜜桃下载| 久久综合九色综合欧美98| 国产欧美日韩综合| 亚洲视频一区二区在线观看| 洋洋成人永久网站入口| 天堂成人国产精品一区| 久久国产精品一区二区| 国产精品一区二区黑丝| heyzo一本久久综合| 色国产综合视频| 欧美老女人第四色| 精品乱人伦小说| 国产日韩影视精品| 亚洲天堂网中文字| 香蕉加勒比综合久久| 麻豆成人91精品二区三区| 国内欧美视频一区二区| 成人不卡免费av| 欧美三级电影一区| 精品免费日韩av| 国产精品国产a级| 亚洲高清久久久|