一、远程调用
一般来说服务间远程调用有两种方式,HTTP和RPC。HTTP主要包括Httpclient、OkHTTP、RestTemplate、Feign(对RestTemplate封装可集成Ribbon做负载均衡)等;RPC主要包括dubbo、grpc、brpc、motan、rpcx、thrift等。本文主要对比springcloud框架常使用的远程服务调用框架Feign和Dubbo
二、远程调用对比
对比项 | feign | dubbo |
---|---|---|
协议 | http | rpc/rmi/http |
性能 | 一般 | 高 |
连接 | 短连接 | 长连接 |
高并发 | 不适合 | 适合 |
负载均衡 | 轮询/随机/ResponseTime加权(client级别算法) | 随机/轮询/活跃度/一致性Hash(可精确到接口级别算法) |
容错 | 熔断机制 | failover/failfast/brodecast/forking(引入了retry、timeout) |
对于springcloud选型来讲,alibaba使用dubbo(rpc或http),netflix使用feign(http)
注:若dubbo使用rpc可通过alibaba sidecar实现跨语言
相关推荐:
1、注册中心选型对比
2、配置中心选型对比
3、网关选型对比
4、远程调用选型对比
5、分布式数据一致性
6、消息队列选型对比
7、监控工具选型对比
8、全链路追踪选型对比