最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于dubbo的RPC和RESTful性能及對比

 更新時間:2022年12月19日 10:04:44   作者:fomeiherz  
這篇文章主要介紹了關(guān)于dubbo的RPC和RESTful性能及對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

先上結(jié)論

RPC請求的效率是HTTP請求的1.6倍左右,性能明顯比HTTP請求要高很多。

原因分析

RESTful是基于HTTP協(xié)議進(jìn)行交互的,HTTP協(xié)議包含大量的請求頭、響應(yīng)頭信息。

而dubbo是基于dubbo自定義的二進(jìn)制協(xié)議進(jìn)行傳輸,消息體比較簡單,傳輸數(shù)據(jù)要小很多。

性能對比

HTTP請求代碼

// 服務(wù)端基于spring boot搭建
// 服務(wù)端代碼
@SpringBootApplication
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @RequestMapping("/helloworld")
    public String helloworld() {
        return "hello world";
    }

}

// 客戶端代碼
import org.springframework.util.StopWatch;
import org.springframework.web.client.RestTemplate;

public class HelloworldTest {
    public static void main(String[] args) {
        RestTemplate restTemplate = new RestTemplate();
        StopWatch stopWatch = new StopWatch();
        stopWatch.start();
        for (int j = 0; j < 10; j++) {
            System.out.println("------------------");
            for (int i = 1; i <= 10000; i++) {
                restTemplate.getForObject("http://127.0.0.1/helloworld", String.class);
                if (i % 1000 == 0) {
                    stopWatch.stop();
                    System.out.println(stopWatch.getTotalTimeSeconds());
                    stopWatch = new StopWatch();
                    stopWatch.start();
                }
            }
        }
    }
}

RPC代碼

// dubbo-demo工程的代碼,詳情請看:https://github.com/apache/dubbo/tree/master/dubbo-demo
// 服務(wù)端
public class DemoServiceImpl implements DemoService {

    @Override
    public String sayHello(String name) {
        return "Hello " + name + ", response from provider: " + RpcContext.getContext().getLocalAddress();
    }
}

// 客戶端
public class Consumer {

    public static void main(String[] args) {
        //Prevent to get IPV6 address,this way only work in debug mode
        //But you can pass use -Djava.net.preferIPv4Stack=true,then it work well whether in debug mode or not
        System.setProperty("java.net.preferIPv4Stack", "true");
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-consumer.xml"});
        context.start();
        DemoService demoService = (DemoService) context.getBean("demoService"); // get remote service proxy

        StopWatch stopWatch = new StopWatch();
        stopWatch.start();

        for (int j = 0; j < 10; j++) {
            System.out.println("-----------");
            for (int i = 1; i <= 10000; i++) {
                demoService.sayHello("world"); // call remote method
                if (i % 1000 == 0) {
                    stopWatch.stop();
                    System.out.println(stopWatch.getTotalTimeSeconds());
                    stopWatch = new StopWatch();
                    stopWatch.start();
                }
            }
        }
    }
}

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Nacos在執(zhí)行startup.cmd的時候出現(xiàn)閃退的問題

    解決Nacos在執(zhí)行startup.cmd的時候出現(xiàn)閃退的問題

    因?yàn)樵诠ぷ髦械捻?xiàng)目中需要使用到nacos作為注冊中心,但是在使用nacos的過程中運(yùn)行startup.cmd的時候出現(xiàn)了閃退的情況,運(yùn)行startup.cmd閃一下就沒有了,我把解決這個問題的全過程理了一下,希望能幫到您,需要的朋友可以參考下
    2023-12-12
  • SpringBoot?緩存預(yù)熱的實(shí)現(xiàn)

    SpringBoot?緩存預(yù)熱的實(shí)現(xiàn)

    本文主要介紹了SpringBoot?緩存預(yù)熱的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2007-11-11
  • Spring Boot Jar 包部署腳本的實(shí)例講解

    Spring Boot Jar 包部署腳本的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Spring Boot Jar 包部署腳本的實(shí)例講解內(nèi)容,對此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • Java多線程之深入理解ReentrantLock

    Java多線程之深入理解ReentrantLock

    這篇文章主要介紹了Java多線程之深入理解ReentrantLock,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java一個簡單的紅包生成算法

    Java一個簡單的紅包生成算法

    今天小編就為大家分享一篇關(guān)于Java一個簡單的紅包生成算法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java由淺入深全面講解方法的使用

    Java由淺入深全面講解方法的使用

    方法,也稱函數(shù),如果想要重復(fù)一段或者多段代碼塊的使用,可以將這些代碼封裝成一個方法,方法具體表現(xiàn)為某種行為,使用方法可以提高代碼的復(fù)用性
    2022-04-04
  • 如何解決EasyExcel導(dǎo)出文件LocalDateTime報(bào)錯問題

    如何解決EasyExcel導(dǎo)出文件LocalDateTime報(bào)錯問題

    這篇文章主要介紹了如何解決EasyExcel導(dǎo)出文件LocalDateTime報(bào)錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 基于java內(nèi)部類作用的深入分析

    基于java內(nèi)部類作用的深入分析

    本篇文章介紹了,基于java內(nèi)部類作用的深入分析。需要的朋友參考下
    2013-05-05
  • 詳解Java使用JDBC連接MySQL數(shù)據(jù)庫

    詳解Java使用JDBC連接MySQL數(shù)據(jù)庫

    本文詳細(xì)講解了Java使用JDBC連接MySQL數(shù)據(jù)庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • Java Swing JButton按鈕的實(shí)現(xiàn)示例

    Java Swing JButton按鈕的實(shí)現(xiàn)示例

    這篇文章主要介紹了Java Swing JButton按鈕的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

海宁市| 家居| 西乡县| 高淳县| 枣阳市| 宁晋县| 赤城县| 邛崃市| 新和县| 玉门市| 同德县| 肃宁县| 玛纳斯县| 福安市| 右玉县| 开平市| 黎川县| 德庆县| 泰兴市| 仪陇县| 井陉县| 伊春市| 扶沟县| 治多县| 绥滨县| 遂川县| 贵定县| 云阳县| 林周县| 仁寿县| 察隅县| 尼玛县| 两当县| 朔州市| 禄劝| 淮阳县| 通江县| 车险| 渭南市| 荔浦县| 闻喜县|