ubbo集群和非duboo(在同一jvm内运行)性能对比代码下载地址:
http://download.youkuaiyun.com/detail/lk_blog/9507435
使用实例测试注意事项:
1.下载zookeeper 地址: http://zookeeper.apache.org/releases.html
2.配置zookeeper, 解压zookeeper后,找到conf/zoo_sample.cfg,复制一份修改文件名为zoo.cfg.
3.maven构建实例中的代码.
4.运行provider.java中的main方法.
5.修改 lk-dubbo-provider工程中的applicationContext.xml文件,找到如下代码修改port端口为20881,
<dubbo:protocol name="dubbo" port="20880" />
并再启动provider.java中的main方法
此时已启动了两个集群,您还可以再次修改端口及启动provider,就会变成三个集群.
6.运行Consumer.java中的main方法启动客户端(dubbo方式运行).
客户端通过多线程发起请求10000次,服务器端处理时间如下:
7.修改lk-dubbo-consumer工程的pom.xml文件,将以下代码的注释去掉使之生效.
<dependency> <groupId>com.tgb.lk</groupId> <artifactId>lk-dubbo-provider</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency>
8.按如下方式修改lk-dubbo-consumer工程的pom.xml文件.使用dubbo方式的改为直接使用spring注入方式.
9.再次运行Consumer.java中的main方法(此时是非dubbo方式运行).
测试类关键代码如下:
//测试性能 ExecutorService threadPool = Executors.newFixedThreadPool(10); int count = 10000; long start = System.currentTimeMillis(); Future<Integer> future = null; for (int i = 1; i <= count; i++) { final int j = i; future = threadPool.submit(new Callable<Integer>() { public Integer call() throws Exception { demoService.sayHello("tom " + j); return j; } }); } if (future != null && future.get() == count) { //远程调用完返回后记录结束时间 long end = System.currentTimeMillis(); System.out.println("consume time " + (end - start) + "ms"); }