日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Dubbo Admin服务测试功能

發(fā)布時(shí)間:2025/1/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dubbo Admin服务测试功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于Dubbo2.7的元數(shù)據(jù),Dubbo Admin實(shí)現(xiàn)了服務(wù)測(cè)試功能,可以通過(guò)泛化調(diào)用,在控制臺(tái)上調(diào)用真實(shí)的服務(wù)提供者

使用方式

  • 部署服務(wù)提供者: 可以在這里下載demo,此工程基于spring boot,方便在IDE或者命令行啟動(dòng),對(duì)于服務(wù)測(cè)試來(lái)說(shuō),只需要啟動(dòng)dubbo-basic-provider即可。
  • 服務(wù)查詢: 完成服務(wù)端部署后,可以到Dubbo Admin的服務(wù)測(cè)試頁(yè)面上查詢對(duì)應(yīng)的服務(wù):?
    這里的信息和元數(shù)據(jù)類似,包含方法名,參數(shù)類型和返回值信息,點(diǎn)擊右邊的標(biāo)簽就可以進(jìn)入服務(wù)測(cè)試頁(yè)面
  • 服務(wù)測(cè)試:?
    服務(wù)測(cè)試頁(yè)面包含了兩個(gè)json編輯器,參數(shù)類型的信息都是以json格式保存,這里需要填入對(duì)應(yīng)的參數(shù)值(本例中數(shù)類型時(shí)String),填寫完成后點(diǎn)擊執(zhí)行即可對(duì)服務(wù)端發(fā)起調(diào)用,調(diào)用結(jié)果展示在右邊的編輯器中,如果調(diào)用失敗,會(huì)顯示詳細(xì)的失敗原因,下面來(lái)看一下調(diào)用失敗的例子:
    本例中,先關(guān)掉Dubbo服務(wù)提供者的進(jìn)程,再執(zhí)行服務(wù)測(cè)試,可以看到返回的結(jié)果是找不到服務(wù)提供者的異常。和普通調(diào)用一樣,業(yè)務(wù)和框架的異常都會(huì)返回在結(jié)果中,方便業(yè)務(wù)排查。
  • 復(fù)合類型參數(shù)
    考慮UserService中的以下方法和類型:
//org.apache.dubbo.demo.api.UserService Result getUser(String name, UserInfoDO userInfoDO); public class UserInfoDO {private int id;private LocationDO locationDO;private DepartmentDO departmentDO;@Overridepublic String toString() {return "UserInfoDO{" +"id=" + id +", locationDO=" + locationDO.toString() +", departmentDO=" + departmentDO.toString() +'}';} } public class DepartmentDO {private String departName;private LocationDO departLocation;@Overridepublic String toString() {return "DepartmentDO{" +"departName='" + departName + '\'' +", departLocation=" + departLocation.toString() +'}';} } public class LocationDO {private String address;private int postNum;@Overridepublic String toString() {return "LocationDO{" +"address='" + address + '\'' +", postNum=" + postNum +'}';} }

參數(shù)是比較復(fù)雜的符合類型參數(shù),服務(wù)測(cè)試的時(shí)候,會(huì)逐層展開(kāi)填寫每一個(gè)field的值,如下圖所示:
同樣可以調(diào)用成功并且返回結(jié)果

原理:數(shù)據(jù)來(lái)源

服務(wù)測(cè)試中,最重要的就是完整的方法簽名信息,和參數(shù)的類型信息,有了這些信息才能夠一步步填入每個(gè)參數(shù)的值,拼裝出完整的服務(wù)消費(fèi)者。在Dubbo2.7中,新增了元數(shù)據(jù)中心,Dubbo Admin的方法簽名和參數(shù)類型信息就是從這里來(lái)的:
如圖所示,服務(wù)端在運(yùn)行的時(shí)候會(huì)將服務(wù)的元數(shù)據(jù)信息注冊(cè)到元數(shù)據(jù)中心,格式如下:

{..."methods": [{"name": "sayHello","parameterTypes": ["org.apache.dubbo.demo.model.User"],"returnType": "org.apache.dubbo.demo.model.Result"},...],"types": [{"type": "char"},{"type": "long"},{"type": "org.apache.dubbo.demo.model.Result","properties": {"msg": {"type": "java.lang.String","properties": {"value": {"type": "char[]"},"hash": {"type": "int"}}},"userName": {"type": "java.lang.String","properties": {"value": {"type": "char[]"},"hash": {"type": "int"}}}}},{"type": "org.apache.dubbo.demo.model.User","properties": {"id": {"type": "java.lang.Long","properties": {"value": {"type": "long"}}},"username": {"type": "java.lang.Sring","properties": {"value": {"type": "char[]"},"hash": {"type": "int"}}}}},...] }

與服務(wù)測(cè)試相關(guān)的就是methods和types所包含的方法和類型信息,Dubbo Admin根據(jù)這些信息,將參數(shù)渲染到服務(wù)測(cè)試頁(yè)面的Json Editor中,由用戶來(lái)輸入每個(gè)參數(shù),每個(gè)成員變量的值。

原理: 泛化調(diào)用

有了參數(shù)類型,下一個(gè)問(wèn)題就是怎么能夠調(diào)用到服務(wù)端,在傳統(tǒng)的Dubbo RPC調(diào)用中,客戶端需要依賴服務(wù)端的API jar包(參考前文demo中的dubbo-basic-consumer),這對(duì)于Dubbo Admin來(lái)說(shuō)不太可能,因?yàn)榉?wù)的上下線是動(dòng)態(tài)的,Dubbo Admin無(wú)法動(dòng)態(tài)增加jar包依賴,因此需要用到Dubbo中的泛化調(diào)用,指的是在沒(méi)有服務(wù)端API接口的情況下,客戶端直接通過(guò)?GenericService?接口來(lái)發(fā)起服務(wù)調(diào)用,返回值中的數(shù)據(jù)對(duì)象都用Map來(lái)表示。泛化調(diào)用在服務(wù)端不需要做特殊處理,只需要客戶端發(fā)起即可。

總結(jié)和展望

本文簡(jiǎn)單介紹了服務(wù)測(cè)試的用法和原理,后續(xù)會(huì)進(jìn)一步針對(duì)該功能進(jìn)行增強(qiáng),比如處理抽象類的參數(shù)類型,支持從json文件導(dǎo)入?yún)?shù)值,支持對(duì)參數(shù)值的保存等等,方便對(duì)服務(wù)接口進(jìn)行回歸測(cè)試。

原文:http://dubbo.apache.org/zh-cn/blog/service-test.html

?

總結(jié)

以上是生活随笔為你收集整理的Dubbo Admin服务测试功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎黄色影院 | 老熟妻内射精品一区 | 欧美婷婷精品激情 | 欧美网 | 爆操欧美美女 | 狠狠插av | 国产精品18p| 午夜免费福利小电影 | 最新国产毛片 | 涩涩视频在线观看免费 | 免费观看国产视频 | 日韩一级片一区二区 | 毛片91| 好看的av在线| 白白色在线观看 | 你懂的在线观看网站 | 国产黑丝在线播放 | 97人人澡| 四虎久久久 | 国产精品丝袜黑色高跟鞋的设计特点 | 一本到视频 | 九九午夜视频 | 麻豆视频一区二区三区 | 久久免费视频99 | 超碰下载页面 | 国产精品伦一区二区三区 | 国产精品专区在线观看 | 国产精品免费视频一区 | 欧美一级性生活视频 | 特级毛片a | 成人免费视频网址 | 欧美内谢| 黄色免费在线网站 | 亚洲精品久久久久久久蜜桃 | 精品蜜桃av| 国产玖玖视频 | 狠狠躁天天躁夜夜躁婷婷 | 综合在线观看 | 欧美一级精品 | 婷婷午夜激情 | 蜜臀尤物一区二区三区直播 | 久久久久久一区 | 麻豆精品在线视频 | 黄色a∨ | av在线等| 国产高清不卡一区 | 久久中文在线 | 中文字幕免费在线看线人动作大片 | www视频在线观看 | 麻豆视频软件 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 黄色一极视频 | 日本综合视频 | 亚洲国产成人精品女人久久 | 国产成人亚洲一区二区 | www.色在线| 久久精品国产亚洲 | 亚洲中文字幕无码一区二区三区 | 久久久久久美女 | 欧美xxxx83d| 亚洲第一欧美 | 尤物网站在线观看 | 国产aⅴ精品一区二区三区久久 | 天堂网资源 | 香蕉视频免费看 | 亚洲av成人片无码 | 少妇的性事hd | 男女野外做受全过程 | 亚洲精品一区三区三区在线观看 | 亚洲天堂成人av | 天天天天天天天天干 | 欧美在线一级 | 人妻视频一区二区三区 | 日韩精品播放 | 在线观看的av网址 | 欧美激情亚洲激情 | 欧美 日韩 成人 | 18无码粉嫩小泬无套在线观看 | 免费伊人网| 国产三级久久久久 | 久久高清| 日韩一区精品 | 乐播av一区二区三区 | 国产人伦精品一区二区三区 | 亚洲特黄特色 | 精品香蕉99久久久久网站 | 日韩美女av在线 | 日日噜噜噜夜夜爽爽狠狠 | 免费在线观看黄视频 | 国产91av视频 | 日韩国产欧美在线观看 | 五月天婷婷网站 | 久久午夜网 | 亚洲成年人免费观看 | 丰满孕妇性春猛交xx大陆 | 捆绑束缚调教 | 国产主播精品在线 | 91精品国产综合久久久久久久 | 亚洲精品成人a |