国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】

這篇具有很好參考價值的文章主要介紹了jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.基于SOAP架構。基于XML規(guī)范?;赪ebService協議。特點:接口地址?wsdl結尾
2.基于RPC架構,基于dubbo協議,thrift協議。SpringCloud微服務。
3.基于RestFul架構,基于json規(guī)范?;趆ttp協議(我們常用的都是這種,cms平臺也是)
RestFul規(guī)則∶
接口地址:?http://127.0.0.1/user?,?get(查詢用戶)?,?post(新增用戶),put(修改用戶).delete?(刪除用戶)
???? Json數據格式:只有兩種數據類型:鍵值對:{key?:?value}
???? 數組:[arry1,arry2]

測試dubbo接口:大數據之高性能的分布式服務框架Dubbo

接口測試主要分HTTP和RPC兩類,RPC類型里面以Dubbo較為知名。
互聯網微服務架構,兩種接口都需要做接口測試的,不管是業(yè)務測試還是回歸測試;
Dubbo:Java棧的互聯網公司比如阿里、美團、58、滴滴、京東等等都是差不多的服務端架構,所以這些公司,兩類接口測試也是必不可少的工作部分;
Dubbo是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,并且本質上是個服務調用的東東,說白了就是個遠程服務調用的分布式框架(告別Web?Service模式中的WSdl,以服務者與消費者的方式在dubbo上注冊)

rpc?API?文檔如下
接口實體:?Object?restForRpc(RequestParams?requestParams);
請求URL:?http://10.118.60.177:8931/express/test/restForRpc
請求方式:POST

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

dubbo是什么
dubbo是阿里巴巴開源的一套rpc方案,以為理念很契合微服務,這幾年很火,用戶里面不凡京東,當當,去哪兒等大公司。

RPC場景

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

dubbo架構

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

官網也提供了一個很簡單實用的demo來演示dubbo協議的使用,用起來的確很簡單強大。dubbo?demo
可參考?http://dubbo.io/?首頁的例子已經很好了。
基于telnet的簡單調試接口
任何一個dubbo服務都支持一個簡單的telent交互。比如
telnet?localhost?20880
>ls?-l
>?ls?-l?DemoService
>?invoke?DemoSerivce.sayHello("seveniruby")
這種方式只能用來簡單驗證接口的可用

什么是RPC?PRC全稱是Remote?Procedure?Call,即遠程過程調用。比如我發(fā)送了一個?rpc?請求:POST?/getUser?user_id=123;相當于是我本地的電腦調用了遠在服務器的?getUser(user_id)?方法,這就叫遠程過程調用,這個遠不一定是跨網絡的調用,同一臺電腦的2個進程之間調用也可以稱為是RPC

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

?還有一點,RPC也是一種API設計風格,因為rpc只有GET?和?POST?請求,它不像restful風格那樣有多種請求:?DELETE、PUT、GET、POST

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

RPC?和?Dubbo
rpc和dubbo比起來,rpc更像是一種編程細想或者是通信方式(RPC不是協議),而dubbo是rpc的一種實現方式,就像接口和實現類一樣,rpc是接口,dubbo是實現類;我們常說Dubbo是阿里巴巴開源的RPC框架,就是這個道理。另外在說一下,dubbo是阿里巴巴在2011年開源,2018年2月后阿里巴巴將Dubbo開源項目捐給了?Apache基金會,從此以后,Dubbo正式進入Apache開源孵化器;Dubbo就不在屬于阿里巴巴,而是屬于社區(qū)的

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

還有一點需要說明的是,dubbo即是框架也是協議;只不過dubbo協議只能在dubbo框架上使用,這個協議是阿里巴巴自己實現的一種應用層協議,傳輸層還是TCP。所以Dubbo協議與HTTP、FTP,SMTP這些應用層協議是并列的概念。除了默認的Dubbo協議,Dubbo框架還支持RMI、Hessian、HTTP等協議。

dubbo協議和http協議
首先,dubbo?和http協議都是基于tcp開發(fā)出來的,而dubbo是高性能和透明化的RPC遠程服務調用方案,為什么叫高性能,就是因為它傳輸的信息更少,少就意味著更快,你提著一塊10斤重的石頭?和?提著一個一斤的石頭跑,你說哪個快??但是dubbo的協議是基于java的序列化開發(fā)而來的,雖然快,但是應用面比較窄,只能在dubbo框架上使用;但是http就不一樣了,http的應用非常廣泛,我用http協議可以和各種不同語言開發(fā)的服務器進行通訊,比如java調用python的服務肯定沒問題,?但是dubbo就不行了,因為dubbo不支持python;雖然http也是基于tcp開發(fā)的,但是和dubbo比起來就顯得重了很多;因為dubbo除了傳輸數據之外就沒別的東西了,而http除了數據之外還有一堆的請求頭(request)和響應頭(response),這無疑會加重傳輸的負擔;除此之外,如果是html的http請求,在發(fā)送請求和響應時會先將數據轉成json在序列化,相比dubbo之下增加了一重轉換,如下圖

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

所以,相同的數據量進行傳輸時,dubbo?比?http?快了將近一倍,只是在當今的計算機環(huán)境下,?這多一點開銷對公司來說不算什么,如果是需要特別快速的需求,像秒殺類的商品搶購,用dubbo是最合適的,其他場景用http?也夠用了安全性
從安全性來說,dubbo肯定沒有http安全,但是也不需要,因為dubbo從設計之初就是為了在內網使用,所以不需要考慮安全性dubbo?和?spring?cloud區(qū)別
1、dubbo由于是二進制的傳輸,占用帶寬會更少
2、springCloud是http協議傳輸,帶寬會比較多,同時使用http協議一般會使用JSON報文,消耗會更大
3、dubbo的開發(fā)難度較大,原因是dubbo的jar包依賴問題很多大型工程無法解決
4、springcloud的接口協議約定比較自由且松散,需要有強有力的行政措施來限制接口無序升級
5、dubbo的注冊中心可以選擇zk,redis等,springcloud的注冊中心用eureka或者Consul
6、spring?cloud?是基于spring?開發(fā),spring本身具有非常完整的生態(tài),與其他框架整合非常方便;易用性高;
7、dubbo沒有全家桶,dubbo社區(qū)也不如spring?cloud;
如果讓我選,我一定用?spring?cloud?,如果是你,你會怎么選呢?

本文轉載于:https://www.cnblogs.com/qtclm/p/16747764.html1.下載用于測試dubbo的spring?boot項目
參考文章:http://t.zoukankan.com/111testing-p-11297038.htmlhttps://zhuanlan.zhihu.com/p/539190478
dubbo介紹:https://www.cnblogs.com/liuyuelinfighting/p/14972958.htmlhttps://dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/https://www.cnblogs.com/111testing/p/11297038.html
jmeter測試dubbo接口插件下載:https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases

git clone -b master https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-spring-boot
mvn clean package // 打包成jar
//啟動生產者服務
cd ./dubbo-samples-spring-boot-provider
java -jar ./target/dubbo-samples-spring-boot-provider-1.0-SNAPSHOT.jar
// 啟動消費者服務
java -jar ./target/dubbo-samples-spring-boot-consumer-1.0-SNAPSHOT.jar

示例核心流程

1. 定義服務接口
dubbo-samples-spring-boot-interface/DemoService.java

package org.apache.dubbo.samples.basic.api;

public interface DemoService {
    String sayHello(String name);
}
2. 提供方實現接口并暴露服務
dubbo-samples-spring-boot-provider/DemoServiceImpl.java
@DubboService
public class DemoServiceImpl implements DemoService {
    @Override
    public String sayHello(String name) {
        System.out.println("Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
        return "Hello " + name;
    }
}
3. 配置 application.yml 文件
dubbo-samples-spring-boot-provider/resources/application.yml
dubbo:
  application:
    name: dubbo-springboot-demo-provider
  protocol:
    name: dubbo
    port: -1
  registry:
    id: zk-registry
    address: zookeeper://127.0.0.1:2181
  config-center:
    address: zookeeper://127.0.0.1:2181
  metadata-report:
    address: zookeeper://127.0.0.1:2181
4. 定義 Spring Boot 主函數,其中,@EnableDubbo 必須配置。

dubbo-samples-spring-boot-provider/ProviderApplication.java
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
    public static void main(String[] args) throws Exception {
        new EmbeddedZooKeeper(2181, false).start();

        SpringApplication.run(ProviderApplication.class, args);
        System.out.println("dubbo service started");
        new CountDownLatch(1).await();
    }
}

5. 引用遠程服務
dubbo-samples-spring-boot-consumer/ConsumerApplication.java

public class ConsumerApplication {
    @DubboReference
    private DemoService demoService;
}
6. 定義 application.yml
dubbo-samples-spring-boot-consumer/application.yml

dubbo:
  application:
    name: dubbo-springboot-demo-consumer
  protocol:
    name: dubbo
    port: -1
  registry:
    id: zk-registry
    address: zookeeper://127.0.0.1:2181
  config-center:
    address: zookeeper://127.0.0.1:2181
  metadata-report:
    address: zookeeper://127.0.0.1:2181
    
 7. 加載 Spring 配置,并調用遠程服務
dubbo-samples-spring-boot-consumer/ConsumerApplication.java

@SpringBootApplication
@Service
@EnableDubbo
public class ConsumerApplication {
    @DubboReference
    private DemoService demoService;

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ConsumerApplication.class, args);
        ConsumerApplication application = context.getBean(ConsumerApplication.class);
        String result = application.doSayHello("world");
        System.out.println("result: " + result);
    }
}

注意:
1.啟動生產者(provider)項目時會自動關聯啟動zookeeper,端口占用:2181
2.dubbo服務默認占用端口:20880 
3.jmeter測試時可以使用jar啟動項目,也可以使用spring boot啟動項目(只啟動provider端即可)

2.下載jmeter測試dubbo所需要的插件,我使用的版本是2.7.8,將插件放到jmeter/lib/ext目錄下,然后打開jmeter搞事情了
地址:?https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases
這里的sayGoodbye方法是自己手動添加的,用于加深對這塊的理解

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡

?3.中途遇到的問題以及處理
1.dubbo請求失敗,這篇文章里有提到處理:https://blog.csdn.net/inlauallnoany/article/details/119237582,如果是在錯誤信息里面看到172.17.160.1,則說明iis服務有沖突,需要關閉iis服務,關閉iis服務:https://www.jb51.net/os/win11/812370.html
2.下載的dubbo項目,默認的interface包路徑是錯誤的,需要替換為具體的接口路徑

jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】,jmeter,rpc,dubbo,網絡協議,網絡文章來源地址http://www.zghlxwxcb.cn/news/detail-635493.html

到了這里,關于jmeter測試rpc接口-使用dubbo框架調用【杭州多測師_王sir】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Dubbo之消費端服務RPC調用

    Dubbo之消費端服務RPC調用

    在消費端服務是基于接口調用Provider端提供的服務,所以在消費端并沒有服務公共接口的實現類。 利用注解@DubboReference將目標接口CountryService作為CountryController類的字段屬性,在解析類CountryController時獲取全部字段屬性并單獨關注解析存在注解@DubboReference的字段屬性。 通過步驟

    2024年03月12日
    瀏覽(23)
  • Dubbo源碼淺析(一)—RPC框架與Dubbo

    RPC,Remote Procedure Call 即遠程過程調用,與之相對的是本地服務調用,即LPC(Local Procedure Call)。本地服務調用比較常用,像我們應用內部程序 (注意此處是程序而不是方法,程序包含方法) 互相調用即為本地過程調用,而遠程過程調用是指在本地調取遠程過程進行使用。 而 RPC框

    2024年02月08日
    瀏覽(24)
  • 使用 【jacoco】對基于 SpringBoot 和 Dubbo RPC 的項目生成測試覆蓋率報告:實踐+原理

    使用 【jacoco】對基于 SpringBoot 和 Dubbo RPC 的項目生成測試覆蓋率報告:實踐+原理

    基于 Dubbo RPC 的項目中有一個提供者項目backend、一個消費者項目gateway、以及注冊中心nacos。本篇文章記錄在windows本地對該框架的測試過程,以及介紹jacoco的基本原理 官網下載安裝包解壓到本地,https://www.jacoco.org/jacoco/ 只需要用到jacoco/lib 文件夾中的 jacocoagent.jar 以及jacococl

    2024年02月09日
    瀏覽(29)
  • 不滿足于RPC,詳解Dubbo的服務調用鏈路

    不滿足于RPC,詳解Dubbo的服務調用鏈路

    【收藏向】從用法到源碼,一篇文章讓你精通Dubbo的SPI機制 面試Dubbo ,卻問我和Springcloud有什么區(qū)別? 超簡單,手把手教你搭建Dubbo工程(內附源碼) Dubbo最核心功能——服務暴露的配置、使用及原理 并不簡單的代理,Dubbo是如何做服務引用的 經過前面一系列的鋪墊,今天終

    2024年02月16日
    瀏覽(26)
  • 分布式RPC框架Dubbo詳解

    分布式RPC框架Dubbo詳解

    目錄 ? 1.架構演進 1.1 單體架構 1.2? 垂直架構 1.3 分布式架構 1.4 SOA架構 1.5 微服務架構 2.RPC框架 2.1 RPC基本概念介紹 2.1.1 RPC協議 2.1.2 RPC框架 2.1.3 RPC與HTTP、TCP/ UDP、Socket的區(qū)別 2.1.4 RPC的運行流程 ?2.1.5 為什么需要RPC 2.2 Dubbo? 2.2.1 Dubbo 概述 2.2.2 Dubbo實戰(zhàn) ? 架構演進如下圖: 這

    2024年02月07日
    瀏覽(38)
  • Java 【dubbo rpc改feign調用】controller注解處理

    【框架改造問題點記錄,dubbo改為spring cloud alibaba】 【第三篇】controller注解處理 【描述】項目之前用了jboss,引入了很多ws.rs包,controller參數注解使用QueryParam。改造時批量替換成了@RequestParam(代表必傳)。但是前端并不會傳全部參數,會導致400,持續(xù)更新… 不加注解,表示

    2024年02月17日
    瀏覽(19)
  • 微服務學習 | Springboot整合Dubbo+Nacos實現RPC調用

    微服務學習 | Springboot整合Dubbo+Nacos實現RPC調用

    ??? 個人主頁 :鼠鼠我捏,要死了捏的主頁? ??? 系列專欄 :Golang全棧-專欄 ??? 個人學習筆記,若有缺誤,歡迎評論區(qū)指正 ? 前些天發(fā)現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站AI學習網站。 目錄 前言 快速上手

    2024年02月19日
    瀏覽(22)
  • Java 【dubbo rpc改feign調用】解決調用服務提供方無法傳遞完整參數問題

    【框架改造問題點記錄,dubbo改為spring cloud alibaba】 【第二篇】feign接口異常解決 【描述】多參數情況下,調用服務提供方無法傳遞完整參數、改@SpringQueryMap原因是會將實體自動拆分為拼接參數。目前只遇到多參數:實體和單參數情況,持續(xù)更新… 匯總: 1.多個普通參數,

    2024年02月16日
    瀏覽(35)
  • Mybatis-Plus+Nacos+Dubbo進行遠程RPC調用保姆級教程

    Mybatis-Plus+Nacos+Dubbo進行遠程RPC調用保姆級教程

    本文通過簡單的示例代碼和說明,讓讀者能夠了解Mybatis-Plus+Nacos+Dubbo進行遠程RPC調用的簡單使用? 默認你已經看過我之前的教程了,并且擁有上個教程完成的項目, 之前的教程?https://www.cnblogs.com/leafstar/p/17638782.html 項目鏈接在最后 ? 1.在bank1的pom文件中引入以下依賴 ? 2.使用

    2024年02月12日
    瀏覽(34)
  • Springboot3.X整合Dubbo3.XSpringCloudAlibaba微服務 2022.0 + Springboot3.X 集成 Dubbo實現對外調用http內部調用RPC

    近期自己新開了一套SpringCloud Alibaba微服務項目,接口使用了對外HTTP,內部RPC的設計,具體點說就是外部用戶或客戶端通過Nginx訪問到Gateway網關再分發(fā)到各個服務,內部各個服務之間統一使用Dubbo RPC進行通信。下面是Springboot3.x集成Dubbo的分享: 1. 需要的關鍵依賴 2. 啟動程序入

    2024年02月15日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包