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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

本地服务启动慢问题及dubbo测试方法记录

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 本地服务启动慢问题及dubbo测试方法记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • @[toc]
    • tips
      • 1: 關于服務啟動慢的問題
      • 2: 兩種本地測試dubbo思路
    • 第一種(推薦使用)
    • 第二種 (太繁瑣而且有代碼侵入, 不建議使用)
      • 安裝zk服務( 本地安裝 )
        • Mac安裝
        • Windows安裝
      • 安裝zk服務( 基于docker 推薦使用方式 )
        • Mac安裝
        • Windows安裝
        • 倉庫加速
        • docker常用命令
      • 本地啟動dubbo服務 (service 為例)
        • 使用jmeter調用dubbo接口
          • step1 安裝(解壓后)
          • step2 安裝插件
          • step3 啟動jmeter
          • step4 添加配置調用本地接口
      • dubbo接口invoke常用參數demo

tips

1: 關于服務啟動慢的問題

hosts文件內添加行

127.0.0.1 ${hostname}::1 ${hostname}

可以一定程度上提升一些速度(自身感覺還是相對明顯的, 原來需要大概2分鐘靠上,現在基本在40秒左右)

正常時間應該會下面截圖的時間長(下圖時間為 只消費不注冊 的情況下)


2: 兩種本地測試dubbo思路

# 第一種 服務端只消費不注冊, 消費端指定消費本地服務 優點: 使用簡單且無侵入;# 第二種 服務端將服務注冊到本地, 如需遠程服務支持需指定遠端服務地址, 然后使用jmeter調用 優點: 單項目即可測試;缺點: 有代碼侵入; 依賴本地zk; 配置及構建參數繁瑣;

第一種(推薦使用)

以 PC 端接口調 project中 IntegralService為例 ( integralService 內會調用其他三方的dubbo服務 )

即: webapp:student:pc => project:service:IntegralService => otherDubboService

# step1: project 項目中的改動1.添加測試依賴 testCompile 'com.kooup:koo-k12-test:1.0.0'2.測試包下啟動項目(直接debug main 方法即可)public class DubboTestStart {public static void main(String[] args) throws Exception{System.setProperty("java.net.preferIPv4Stack", "true");//配置文件可按需調整ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"classpath*:app_config/koo-k12-service-app.xml","classpath*:dubbo_config/common.xml","classpath*:dubbo_config/koo-k12-service-dubbo.xml","classpath*:app_config/integral-rocketmq-app.xml","classpath*:app_config/im-mq-app.xml"});context.start();System.out.println(" >>>> Provider started.");System.in.read();}}# step2: pc (或者其他webapp項目)1.添加本地配置(在當前用戶目錄下添加文件, 也可手動指定文件目錄,jetty啟動無效后續再確認問題)#/Users/yakuiguo/dubbo-resolve.properties (端口號可查看dubbo.properties:dubbo.protocol.port=20059)com.kooup.k12.integral.service.IntegralService=dubbo://localhost:20059 # step3: 啟動1.完成以上步驟即可啟動項目,進行本地測試

用 -Ddubbo.resolve.file 指定映射文件路徑,此配置優先級高于dubbo:reference中的配置

1.0.15及以上版本支持2.0以上版本自動加載${user.home}/dubbo-resolve.properties文件,不需要配置


/*** com.kooup:koo-k12-test:1.0.0 jar包內所做事情*/ @Slf4j @Component public class DubboTestService implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof RegistryConfig) {RegistryConfig registryConfig = (RegistryConfig) bean;String address = registryConfig.getAddress();if (StringUtils.isNotBlank(address) && (address.contains("127.0.0.1") || address.contains("localhost"))) {// 如果是注冊到本地zk 則不處理log.warn(" >>>>> dubbo服務將被注冊到 address: {}", address);}else {registryConfig.setRegister(false);log.warn(" >>>>> 設置registryConfig.register=false, 服務啟動將不會注冊服務到遠程zk, address: {}", address);}}return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {return bean;} }

第二種 (太繁瑣而且有代碼侵入, 不建議使用)

本地啟動zk服務, 并將服務注冊到本地zk。

安裝zk服務( 本地安裝 )

官網: https://zookeeper.apache.org/

Apache mirrors: https://www.apache.org/dyn/closer.cgi/zookeeper/

Mac安裝

# 直接解壓即可 # 常用命令 ./bin/zkServer.sh start //啟動服務 ./bin/zkServer.sh status //查看狀態 ./bin/zkServer.sh stop //停止服務./bin/zkCli.sh //啟動客戶端 ./bin/zkCli.sh -timeout 50000 -server 127.0.0.1:2181 //啟動客戶端時指定服務地址及超時時間

Windows安裝

https://www.cnblogs.com/xiohao/p/9717364.html

安裝zk服務( 基于docker 推薦使用方式 )

Mac安裝

https://www.jianshu.com/p/f1a777109e66

Windows安裝

https://blog.csdn.net/qq_41723615/article/details/92799469

倉庫加速

可用加速地址 http://f1361db2.m.daocloud.io(也可自行注冊 https://account.daocloud.io/signup )

docker常用命令

# 基礎命令 docker search zookeeper //搜索zookeeper相關的鏡像 docker pull zookeeper //根據鏡像名稱獲取鏡像到本地 docker images //查看本地鏡像 docker ps //查看本地已啟動實例 參數: -a (查看本地所有實例)# 創建并啟動一個zookeeper實例 (映射到本地2181端口) docker run -d -p 2181:2181 --name zk --privileged zookeeper# 啟動關閉已有實例 docker start zk //啟動 zk為實例名稱, 也可以使用容器id docker stop zk //關閉 docker logs -f zks //滾動查看日志 (-t 時間戳, --since 30m 30分鐘內的日志)# 進入到實例內部 docker exec -it zk /bin/bash

本地啟動dubbo服務 (service 為例)

# 項目配置# 注冊服務到本地zk#file: service/src/main/resources/dubbo_config/koo-k12-service-dubbo.xml1.<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" /># 配置依賴服務1.添加本地配置(在當前用戶目錄下添加文件, 也可手動指定文件目錄,jetty啟動無效后續再確認問題)#/Users/yakuiguo/dubbo-resolve.properties (ip+端口 查看: https://dubbomonitor.trunk.koolearn.com/#/serviceDetail?service=com.kooup.k12.integral.service.IntegralService&app=kooup-dubbo-service)com.koolearn.credit.engine.service.ICreditActionService=dubbo://10.155.10.163:20059

使用jmeter調用dubbo接口

jmeter

官網: https://jmeter.apache.org/

下載: https://jmeter.apache.org/download_jmeter.cgi

插件

Git地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo

現成jar: http://note.youdao.com/noteshare?id=940a4e215f7721b1e8291ea8492d4dc0

step1 安裝(解壓后)

step2 安裝插件

step3 啟動jmeter

step4 添加配置調用本地接口

3.1

3.2

3.3

3.4

3.5

dubbo接口invoke常用參數demo

# telnet host port telnet 127.0.0.1 20063# invoke 基礎參數 invoke com.kooup.***.IK12PreviewTaskBizService.test(13568, "447904", false)# 包含對象 {"class": "當前對象的全限定名", "key": "value" ... } invoke com.kooup.***.IK12PreviewTaskBizService.test({"userName": "測試用戶", "class": "com.kooup.user.param.User"})# 包含枚舉 {"class": "當前枚舉的全限定名", "name": "value"} 其中name為固定key, value為枚舉的標識 invoke com.kooup.***.IK12PreviewTaskBizService.test({"name": "OPEN_SUCCESS", "class": "com.kooup.enums.TestEnum"})# 包含list使用數組即可 [1, 2] (元素類型對應參數類型即可) invoke com.kooup.***.IK12PreviewTaskBizService.test([1, 2])

總結

以上是生活随笔為你收集整理的本地服务启动慢问题及dubbo测试方法记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。