Jmeter簡単テストdubboインタフェース
4778 ワード
最近Disruptorフレームワークを見て、
公式には1つのスレッドで毎秒6百万の注文を処理できると言われています.
4台のサーバにしか配備されていないサービスで、1秒間に100万行以上のデータをデータベースに書き込み、毎分1 G以上のデータを生成します.
自分で圧力測定をしたいのですが、過程は少し曲がりくねっています.
ダイレクトコード
主な穴は梱包時にカバンに依存する問題です
パッケージ化するときはすべてのdependenciesをlibフォルダに入れますが、jarをJmeterのlib/extに直接コピーすることはできません.そうしないと起動できません.
手動で必要なjarをextにフィルタリングすることをお勧めします.これは長い間振り回されていて、手動でフィルタリングしてから起動することができます.
ps:この例は1.7 java普通mavenプロジェクトでspring bootプロジェクトではありません
公式には1つのスレッドで毎秒6百万の注文を処理できると言われています.
4台のサーバにしか配備されていないサービスで、1秒間に100万行以上のデータをデータベースに書き込み、毎分1 G以上のデータを生成します.
自分で圧力測定をしたいのですが、過程は少し曲がりくねっています.
ダイレクトコード
public class Caller extends AbstractJavaSamplerClient {
private static DubboInit dubboInit;
private static OperateRecordServiceFacade facade;
@Override
public void setupTest(JavaSamplerContext context) {
getLogger().info("start....");
dubboInit = DubboInit.getInstance();
dubboInit.initApplicationContext();
facade = (OperateRecordServiceFacade) dubboInit.getBean("operateRecordServiceFacade");
}
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
getLogger().info("start...");
OperateRecordDTO dto = new OperateRecordDTO();
dto.setOperateType(OperateTypeEnum.MODIFY_CREDIT_RESULT.getCode());
dto.setOperateDesc("test");
dto.setOperator("tests");
facade.saveAndUpdate(dto);
SampleResult sr = new SampleResult();
sr.sampleStart();
sr.setSuccessful(true);
sr.sampleEnd();
getLogger().info("end...");
return sr;
}
public static void main(String[] args) {
dubboInit = DubboInit.getInstance();
dubboInit.initApplicationContext();
facade = (OperateRecordServiceFacade) dubboInit.getBean("operateRecordServiceFacade");
OperateRecordDTO dto = new OperateRecordDTO();
dto.setOperateType(OperateTypeEnum.MODIFY_CREDIT_RESULT.getCode());
dto.setOperateDesc("test");
dto.setOperator("tests");
facade.saveAndUpdate(dto);
}
}
public class DubboInit {
private static DubboInit init = null;
private DubboInit(){}
private static ApplicationContext context;
public synchronized static DubboInit getInstance(){
if(init == null){
init = new DubboInit();
}
return init;
}
public static void initApplicationContext(){
context = new ClassPathXmlApplicationContext("classpath:/dubbo.xml");
if(context==null)
{
throw new IllegalArgumentException("Load dubbo-client.xml fail");
}
}
public Object getBean(String beanName) {
return context.getBean(beanName);
}
}
主な穴は梱包時にカバンに依存する問題です
パッケージ化するときはすべてのdependenciesをlibフォルダに入れますが、jarをJmeterのlib/extに直接コピーすることはできません.そうしないと起動できません.
手動で必要なjarをextにフィルタリングすることをお勧めします.これは長い間振り回されていて、手動でフィルタリングしてから起動することができます.
ps:この例は1.7 java普通mavenプロジェクトでspring bootプロジェクトではありません
org.apache.maven.plugins
maven-dependency-plugin
3.0.1
target/lib
copy-dependencies
package
copy-dependencies
maven-clean-plugin
3.0.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.7.0
maven-surefire-plugin
2.20.1
maven-jar-plugin
3.0.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2