赞
踩
gRPC 和 Dubbo 是近几年来,比较火的两款 RPC 的框架,很多人就在问了:在国内,是 Dubbo 用的多还是 gRPC 用的多呢?
gRPC 是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以通过对负载平衡、跟踪、健康检查和身份验证的可插拔支持,有效地连接数据中心内和数据中心之间的服务。它也适用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到后端服务。
我们可以先去到 github 克隆一个 gRPC 的项目下来并运行:
git clone https: //github.com/grpc/grpc-java
接着我们使用 maven 去启动项目,且循环 1000000 次。
- mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldServer
- mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldClient
测出来的时间大概为:
spend time: 126 can handle 7936 per second
Dubbo 是阿里巴巴出品的,是使用 Java 这种编程语言编写的,Dubbo 跟 RPC 的关系就是:Dubbo 是一种 RPC 的框架,一种分布式服务框架,体现在:
Dubbo 也是一种 SOA 服务的治理方案。
而我们对 Dubbo 进行编码,并测试性能:
- @Service(version = "1.0.0")
- public class HelloServiceImpl implements HelloService {
-
- @Override
- public String SayHello(String name) {
- return "Hello , "+name;
- }
- }
- @RestController
-
- public class HelloController {
-
- private final Long testScale = 1000000L;
-
- @Reference(version = "1.0.0")
- HelloService helloService;
-
- @GetMapping("sayHello")
- public String sayHello( String name){
- name = " world";
- Long now = Instant.now().getEpochSecond();
- for(int idx = 0; idx < testScale; idx++){
- System.out.println( helloService.SayHello(String.format("%s:%d",name,idx)));
- }
-
- Long duration = Instant.now().getEpochSecond() - now;
- System.out.println(String.format("can handle %d per second", testScale/duration));
- return String.format("can handle %d per second", testScale/duration);
- }
- }
我们进行运行,并查看耗时结果:
can handle 12987 per second
我们可以看出,Dubbo 的性能更加的好,且 Dubbo 是阿里巴巴出品,属于国产 RPC 框架,对于国内的开发肯定是更加友好的。
了解更多关于 RPC 协议相关知识。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。