thrift,gRPC,rpcx,motan,dubbox等rpc框架对比
来源:互联网 发布:加内特08年总决赛数据 编辑:程序博客网 时间:2024/06/06 04:35
thrift,gRPC,rpcx,motan,dubbox等rpc框架对比
Motan
Dubbox
thrift
gRPC
rpcx
开发语言
Java
Java
跨语言
跨语言
go
分布式服务治理
Y
Y
可以配合zookeeper, Eureka等实现
可以配合etcd(go),zookeeper,consul等实现
自带服务注册中心,也支持zookerper,etcd等发现方式
底层协议
motan协议,使用tcp长连接
Dubbo 协议、 Rmi 协议、 Hessian 协议、 HTTP 协议、 WebService 协议、Dubbo Thrift 协议、Memcached 协议
tpc/http/frame
http2
tcp长链接
消息序列化
hessian2,json
hessian2,json,resr,kyro,FST等,可扩展protobuf等
thrift
protobuf
Gob、Json、MessagePack、gencode、ProtoBuf等
跨语言编程
N(支持php client和c server)
N
Y
Y
N
负载均衡
ActiveWeight 、Random 、 RoundRobin 、LocalFirst 、 Consistent 、ConfigurableWeight
Random 、RoundRobin 、ConsistentHash 、 LeastActive
Haproxy,
zookerper+客户端负载均衡等方案
负载均衡软件HaProxy等
支持随机请求、轮询、低并发优先、一致性 Hash等
容错
Failover 失效切换、Failfast 快速失败
Failover 、 Failfast 、Failsafe 、 Failback 、 Forking、 Broadcast
Failover
具有 Failover 失效切换的容错策略
失败重试(Failover)、快速失败(Failfast)
注册中心
consul
zookeeper
zookeeper
etcd,zookeeper,consul
zookerper,etcd
性能
★★
★★
★★★★
比grpc快2-5倍
★★★
比dubbox,motan快
★★★★★
比thrift快1-1.5倍
侧重优势
服务管理
服务管理
跨语言,性能++
跨语言,性能
性能++,服务治理
客户端异步调用方案
- 使用thrift IDL “oneway” 关键字(无返回结果),+callback
- tcp异步请求
- thrift IDL参数不支持函数或服务
- ping(service,req,res,callback)
- 客户端发送一个对象,服务端返回stream,客户端使用迭代处理
- 客户端发送stream对象,服务端返回一个对象
- 服务端客户端都使用stream传输
服务端异步处理
1、TNonblockingServer(java/c++,php); THsHaServer(java/c++); TThreadpoolServer(java/c++); TThreadSelectorServer(java/c++)
2、结合消息队列或中间件
3、swoole/goroutine等多任务支持
同上,使用stream传输。
proto支持stream对象。
Stream对象在传输过程中会被当做集合,用Iterator来遍历处理
php thrift server异步服务端开源例子(实现TNonblockingServer):
https://github.com/volca/thrift/lib/php/src
motan,dubbo,grpc对比参考:
http://p.primeton.com/articles/59030eeda6f2a40690f03629
rpcx具体参考:
http://www.udpwork.com/item/15521.html
thrift,grpc,motan,dubbx性能参考:
http://blog.csdn.net/zixiao217/article/details/53675678?locationNum=7&fps=1
关键信息截图:
https://github.com/smallnest/RPC-TEST
每10000请求消耗的毫秒数:
http://szelei.me/rpc-benchmark-part1/
cpu平均请求耗时(越小越好)
php thrift客户端异步调用参考:
https://github.com/yuxel/thrift-examples
grpc 异步参考:
http://blog.csdn.net/u011262847/article/details/75944548
- thrift,gRPC,rpcx,motan,dubbox等rpc框架对比
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
- dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
- 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
- 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
- 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
- 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
- gRPC, Thrift和Dubbo等3种RPC框架的比较
- 微博RPC框架Motan
- 开源RPC(gRPC/Thrift)框架性能评测
- RPC服务框架-dubbox
- rpc框架--grpc-java
- motan学习笔记 一 微博轻量级RPC框架Motan
- 搭建新浪RPC框架motan Demo
- 微博轻量级RPC框架Motan
- Spring+Mybatis基本配置。
- HeapSort堆排序C++实现及相关背景知识
- codility TieRopes
- cassandra compaction strategy
- 数据录入快捷方式
- thrift,gRPC,rpcx,motan,dubbox等rpc框架对比
- 向右移动放大后点击按钮可以继续放大
- ubuntu下安装ROS并运行一个小例程
- leetcode 104. Maximum Depth of Binary Tree DFS深度优先搜索
- 我的Python学习笔记(6) 初探网络爬虫scrapy
- 最全Pycharm教程(9)——创建并运行一个基本的Python测试程序
- tebsorflow学习——tf.train.ExponentialMovingAverage与tf.train.exponential_decay
- Python 2.7.x 和 3.x 版本的重要区别
- systat(统计分析软件) v13.1免费版下载及安装教程