dubbo入門例項及效能測試
阿新 • • 發佈:2019-01-10
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"); }