dubbo入门实例及性能测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lk_blog/article/details/51288375

ubbo集群和非duboo(在同一jvm内运行)性能对比代码下载地址:

http://download.csdn.net/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");
        }


 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/lk_blog/article/details/51288375