dubbo和S-HSF测试对比

标签: dubbo hsf 测试 | 发表时间:2015-03-04 16:35 | 作者:ahua186186
出处:http://www.iteye.com
今天没什么事,简单测试下RPC框架性能: HSF完胜dubbo

1.dubbo测试结果:

耗时:16.808 s
平均:0.16808 ms
TPS:5949.547834364588

测试数据:

public class TPS_TEST {

    public static void main(String[] args) throws InterruptedException {
    	final ClassPathXmlApplicationContext context = 
    			new ClassPathXmlApplicationContext(
    					new String[] {"file:E:/1-project_test/dubbox-master/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml"});
		final HelloService helloService = (HelloService)context.getBean("helloService"); // get service invocation proxy
    	ExecutorService executorServicePool = Executors.newFixedThreadPool(200);
    	final int size = 100000;
    	final CountDownLatch cdl = new CountDownLatch(size);
    	long begin = System.currentTimeMillis();
		for (int i = 0; i < size; i++) {
			executorServicePool.execute(new Runnable() {
				@Override
				public void run() {
					try {
						
						String hello = helloService.hello("aa"); // do invoke!
						//System.out.println( hello ); // cool, how are you~
				        cdl.countDown();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}
		//executorServicePool.shutdown();
		//executorService.awaitTermination(10, TimeUnit.MINUTES);
		cdl.await();//等待所有任务处理完
        long time = System.currentTimeMillis() - begin;
        System.out.println("耗时:" + (double) time / 1000 + " s");
        System.out.println("平均:" + ((double) time) / size +" ms");
        System.out.println("TPS:" + (double) size / ((double) time / 1000));              
   
    
    }

   
}



2.hsf 测试结果:

耗时:6.305 s
平均:0.06305 ms
TPS:15860.428231562253

测试数据:

public class Client {
	public static void main(String[] args) throws InterruptedException, ExecutionException {
		final int size = 100000;
		final CountDownLatch cdl = new CountDownLatch(size);

		// final TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapAsyncProxy(
		// TestService.class);
		
		HsfConnector connector = new HsfConnectorImpl();
		connector.connect(new InetSocketAddress("localhost", 8082));
		
		
		final TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapAsyncCallbackProxy(
				TestService.class, new AsyncCallback<Object>() {
					public void doCallback(Object data) {
						//System.out.println("received:" + data);
						cdl.countDown();
					};
					@Override
					public void doExceptionCaught(Throwable ex, HsfChannel channel, Object param) {
						System.out.println(ex);
						super.doExceptionCaught(ex, channel, param);
					}
				});
		ExecutorService executorServicePool = Executors.newFixedThreadPool(200);
		long begin = System.currentTimeMillis();
		for (int i = 0; i < size; i++) {
			executorServicePool.execute(new Runnable() {
				@Override
				public void run() {
					try {
						testService.test("aa");
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}
		//executorServicePool.shutdown();
		//executorService.awaitTermination(10, TimeUnit.MINUTES);
		cdl.await();//等待所有任务处理完
        long time = System.currentTimeMillis() - begin;
        System.out.println("耗时:" + (double) time / 1000 + " s");
        System.out.println("平均:" + ((double) time) / size +" ms");
        System.out.println("TPS:" + (double) size / ((double) time / 1000));
        
	}

}






已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [dubbo hsf 测试] 推荐:

dubbo和S-HSF测试对比

- - 企业架构 - ITeye博客
今天没什么事,简单测试下RPC框架性能: HSF完胜dubbo. 平均:0.16808 ms. cdl.await();//等待所有任务处理完. System.out.println("耗时:" + (double) time / 1000 + " s");. System.out.println("平均:" + ((double) time) / size +" ms");.

分布式服务框架选型:面对 Dubbo,阿里巴巴为什么选择了 HSF?

- - IT瘾-tuicool
阿里巴巴集团内部使用的分布式服务框架 HSF(High Speed Framework,也有人戏称“好舒服”)已经被很多技术爱好者所熟知,目前已经支撑着近 2000 多个应用的运行. 其对应早期的开源项目 Dubbo(因为某些原因,Dubbo 项目在 2012 年年底,阿里巴巴就停止了对此开源项目的更新),则更是在互联网领域有着非常高的知名度和广泛的使用.

基于dubbo框架下的RPC通讯协议性能测试 - lengfo

- - 博客园_首页
  Dubbo RPC服务框架支持丰富的传输协议、序列化方式等通讯相关的配置和扩展. 更多关于dubbo详细介绍请参照官方文档( http://alibaba.github.io/dubbo-doc-static/Home-zh.htm).   1、支持常见的传输协议:RMI、Dubbo、Hessain、WebService、Http等,其中Dubbo和RMI协议基于TCP实现,Hessian和WebService基于HTTP实现.

[原]Dubbo实例

- -
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. Remoting: 网络通信框架,实现了sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能. Registry: 服务目录框架用于服务的注册和服务事件发布和订阅.

项目中单元测试容易出现的普遍问题归纳(Junit/Spring/Spring-test/Dubbo/RocketMQ/JAVA)

- - 编程语言 - ITeye博客
   最近公司要求项目在使用maven构建的时候不能跳过test的生命周期,也就是通过mvn test命令需要将整个项目运行起来. 因为之前项目组的成员都是在eclipse中去执行的unit test,在maven对所有模块构建的都是直接-Dmaven.test.skip=true的方式直接跳过UT的.

DUBBO用户指南

- - 开源软件 - ITeye博客
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键. 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率.

dubbo 问题整理

- - 行业应用 - ITeye博客
1 面试题:Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么. 可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地. 每次调用时,按照本地存储的地址进行调用. 注册中心对等集群,任意一台宕掉后,会自动切换到另一台 . 注册中心全部宕掉,服务提供者和消费者仍可以通过本地缓存通讯 .

dubbo服务降级实现dubbo-plus/circuitbreaker at master · dubboclub/dubbo-plus · GitHub

- -
向注册中心写入动态配置覆盖规则:(通过由监控中心或治理中心的页面完成). 表示消费方对该服务的方法调用都直接返回null值,不发起远程调用. 屏蔽不重要服务不可用时对调用方的影响. 表示消费方对该服务的方法调用在失败后,再返回null值,不抛异常. 容忍不重要服务不稳定时对调用方的影响. Dubbo支持服务降级,并且支持当服务出现异常的时候进行服务降级处理,但是存在一下几个缺陷.

学习dubbo源代码

- - Java - 编程语言 - ITeye博客
1、Dubbo与Spring的整合. Dubbo在使用上可以做到非常简单,不管是Provider还是Consumer都可以通过Spring的配置文件进行配置,配置完之后,就可以像使用springbean一样进行服务暴露和调用了,完全看不到dubboapi的存在. 这是因为dubbo使用了spring提供的可扩展Schema自定义配置支持.

dubbo的安装和使用

- - CSDN博客云计算推荐文章
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. 此时,用于简化增删改查工作量的 . 数据访问框架(ORM) 是关键.