原由
最近抽取了项目部分功能,提供dubbo接口以供其他项目组使用,这里被别人依赖,就要负起责任啊,我们的dubbo服务能支撑多少并发,有多大吞吐量呢。
jmeter
很多人应该都比较熟悉了,就用它来告诉我们答案吧。
环境搭建
- 下载安装
- 下载zip,解压即可
- 可以选择性是否配置环境变量
- 构建dubbo服务调用工程
- 引入pom依赖
<!--jmeter依赖的jar包-->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>3.2</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</exclusion>
<exclusion>
<groupId>commons-math3</groupId>
<artifactId>commons-math3</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool2</groupId>
<artifactId>commons-pool2</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>3.2</version>
<exclusions>
<exclusion>
<groupId>commons-math3</groupId>
<artifactId>commons-math3</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool2</groupId>
<artifactId>commons-pool2</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 更换成你自己dubbo项目服务依赖-->
<dependency>
<groupId>com.netease.kada.compose</groupId>
<artifactId>kada-itemcenter-compose-api</artifactId>
<version>${kada-compose}</version>
</dependency>
<!-- DubboK 这里请更换成对应dubbo依赖,这里是公司封装的dubbo-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbok</artifactId>
<version>3.0.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<!-- zk -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
- 源码
- 打包jar
- 直接maven install 后会有两个东西需要关注
- 复制到jar到jmeter lib下ext中(D:\apache-jmeter-3.3\lib\ext)
- 负责lib到到jmeter lib下,key新建lib-ext文件夹,存放lib依赖jar
- 配置jmeter.properties(D:\apache-jmeter-3.3\bin下),找到search_paths进行配置,默认是注释掉的,指定你项目依赖jar(search_paths=D:/apache-jmeter-3.3/lib/lib-ext;),让jmeter引入。
- 启动jmeter
- 这里需要注意,个人在这里卡了很久,各种启动失败,一般是项目依赖jar和jmeter所需jar冲突,
- 去掉项目依赖中的,jmeter打头 jar包,其他的具体查看启动后的log日志进行排查冲突jar
- 直接maven install 后会有两个东西需要关注
- 使用jmeter进行测试
- 项目启动成功后可以开心的进行测试了
- 添加线程组
- 添加java请求
- 添加相关监听,选择入口类名称
- 运行吧
总结
- 比较简单,主要是要搭建调用dubb服务的工程,引入jmeter依赖,使用jmeter格式调用。
- 复制处理好的jar到jmeter中
- 处理jmeter和jar相关冲突,一般删除工程中jmeter已经有的jar就好
- 剩下就是jmeter基本的使用了,(搜索jmeter教程就好)