1. 聚能聊>
  2. 话题详情

你使用过哪些RPC 框架?

RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。
RPC 调用分以下两种:

  1. 同步调用
    客户方等待调用执行完成并返回结果。
  2. 异步调用
    客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。

若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。
1、你在项目中使用过哪些RPC框架;
2、各个RPC框架都有哪些优缺点;
3、描述一下使用最满意的框架的使用心得;

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    技术书籍 x 1

  • 奖品二

    云栖定制鼠标垫 x 3

  • 奖品三

    多功能工具箱 x 1

26个回答

1

xumaojun 已获得技术书籍 复制链接去分享

1、你在项目中使用过哪些RPC框架;
使用过Facebook的Thrift,google的grpc。

2、各个RPC框架都有哪些优缺点;
Google gRPC
gRPC 
1.gRPC是一个高性能、通用的开源RPC框架,其由Google 
2015年主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol 
Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、电池寿命。
2.最新的Google API支持gRPC
3.支持 C, C++, Node.js, Python, Ruby, Objective-C,PHP and C#
4.协议 BSD
ProtoBuf 
1.其由Google 2001年设计,2008年开源。
2.Google内部的服务几乎都是用的PB协议
3.久经考验、充分验证、良好实现 
-使用ProtoBuf: Google、Hadoop、ActiveMQ、Netty
4.协议 BSD
Apache Thrift
1.thrift是一种可伸缩的跨语言服务的RPC软件框架。它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,高效、无缝地在多种语言间结合使用。2007年由facebook贡献到apache基金,是apache下的顶级项目。
2.支持C、C++ 、C# 、D 、Delphi 、Erlang 、Go 、Haxe 、Haskell 、Java 、JavaScript 
、node.js 、OCaml 、Perl 、PHP 、Python 、Ruby 、SmallTalk
3.使用Thrift:Hadoop、HBase、Cassandra、Scribe、LastFM、Facebook、 Evernote
4.协议Apache License 2.0
典型操作模型
1.IDL-like语言定义接口
2.运行工具生成java、python、Go等引用程序 
如: thrift –gen go MyProject.thrift
3.生成的引用程序哪怕再多,都是可读的
4.在自己的程序中引用生成的程序
5.DO NOT EDIT!

thritt操作原理
 _1
gRPC实现原理类似
thrift与gRPC 比较
_2
_3

3、描述一下使用最满意的框架的使用心得;
使用最多的是thrift,版本0.9.3,其中设置连接数和超时时间有坑,特别是超时时间不单位,刚开始以为超时时间不生效。

1

海阔天空yy 已获得云栖定制鼠标垫 复制链接去分享

1、你在项目中使用过哪些RPC框架;
用过dubbo,spring cloud 走的是http应该也算RPC吧

2、各个RPC框架都有哪些优缺点;
dubbo上手很快,使用起来感觉很容易,初期可能会用的比较爽,但随着业务越来越大,可能会慢慢发现他有很多功能没有实现
pringcloud 组件比较多,不像dubbo初期看起来好像功能很有多,但当你了解到更多的组件的时候,就会发现还是spirngcloud的功能更多一些,虽然使用起来要配置的比较多,但等你全面了解了还是不错的
dubbo走的是tcp协议,springcloud走的是http协议,所以从协议上来说,dubbo性能更好一些,但从微服务的管理方面来说好像cloud更强一些
3、描述一下使用最满意的框架的使用心得;
dubbo吧,主要是感觉他找代码很多合,就算是跨微服务ctrl+左键也一样能跳过去,springcloud好像就不行了,可能需要自己封装接口实现吧.

1

微wx笑 已获得云栖定制鼠标垫 复制链接去分享

1、你在项目中使用过哪些RPC框架;
用过基于mina、netty的,大牌的没用的。

2、各个RPC框架都有哪些优缺点;
有篇文章说的不错:分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较

3、描述一下使用最满意的框架的使用心得;
主要还是并发和序列化吧。

0

bianyili 已获得多功能工具箱 复制链接去分享

1、你在项目中使用过哪些RPC框架;
Thrift,avro,使用公司内部的总线框架自动生成服务端,客户端,类似gsoap,编解码使用avro进行二进制编解码,使用go语言进行json编解码。

2、各个RPC框架都有哪些优缺点;
thirft方便,支持C++,java多种语言
avro支持多种序列化

3、描述一下使用最满意的框架的使用心得;
thrift口参数中带map的参数比较费时间,换成vector快很多;
avro序列化大量json比较费时间,使用go语言的编解码json效率更高。

2

黄一刀 复制链接去分享

1、你在项目中使用过哪些RPC框架;
我用过Hessian和阿里开源的Dubbo。
2、各个RPC框架都有哪些优缺点;
Hessian基于HTTP传输 协议,利用负载均衡器来实现负载均衡和失效转移,在性能上存在一定缺陷。
Dubbo拥有高性能,需要有一定的zookeeper基础才能很好的上手Dubbo,而且Dubbo配置会较为繁琐。
3、描述一下使用最满意的框架的使用心得;
个人还是比较青睐阿里的Dubbo,开源、高效。

0

1052797838023122 复制链接去分享

dobbo也不过是一个soa类型框架而已,与spring cloud 微服务框架差别其实还是很大,就协议层来说dobbo底层也是基于netty的tcp协议

0

1735845799111727 复制链接去分享

如果关注性能,Tars了解一下,性能吊打gRPC

0

1820268985977306 复制链接去分享

1、你在项目中使用过哪些RPC框架;

  使用的RPC框架有dubbo和grpc。

2、各个RPC框架都有哪些优缺点;

  dubbo负载均衡做的很好,缺点就是现在还不支持跨语言,不过个人比较喜欢dubbo,grpc对负载均衡做的不是很好,主要是因为台北同事使用的是C#所以需要跨语言访问。

3、描述一下使用最满意的框架的使用心得

  使用最满意的还是dubbo吧,使用很方便,配置很少。
0

lucifer_m 复制链接去分享

1、你在项目中使用过哪些RPC框架;
学习过Dubbo和Spring Cloud,Facebook的Thrift和Google的gRPC有听说过,还在学习,小白一枚。
2、各个RPC框架都有哪些优缺点;
这个我不是很了解,才刚开始学习,希望能够熟练应用并了解源码
3、描述一下使用最满意的框架的使用心得;
Dubbo较Spring Cloud要更加轻量级一些。还在学习中。。。

0

浮生递归 复制链接去分享

不科学,我居然还没用过rpc,什么鬼。

0

1992316065445014 复制链接去分享

学习过

0

1992316065445014 复制链接去分享

感谢

0

sky.y 复制链接去分享

小白一枚 请多多关照

0

1093137350850142 复制链接去分享

非常认同!

0

似水的流年 复制链接去分享

1、你在项目中使用过哪些RPC框架;
用过motan Dubbo
2、各个RPC框架都有哪些优缺点;
dobbo之前停止更新过一段时间
motan的缺点:
功能较少,不支持跨语言调用。年轻,稳定性和可能出现的问题尚待检验
优点:
轻量级,开发和学习简单。年轻,有无限的发展可能性。dubbo因为原创团队的原因已经停止更新,motan更新较快
3、描述一下使用最满意的框架的使用心得;
觉得都比较好用的

0

1135437293118578 复制链接去分享

不明白

0

1256637291644777 复制链接去分享

不太了解

0

1678937288637906 复制链接去分享

新人 初来乍到

0

1912236740070548 复制链接去分享

新人 以后请大家多多关照

0

1659137285552506 复制链接去分享

没有具体语境

2
5115
浏览
0
收藏
邀请他人互动
关注
6
粉丝
47
话题
1

简介:

软件开发,安全加密
充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算框架,以应用为中心,帮助企业级客户轻松构建并...

是一款提供了现场可编程门阵列(FPGA)的计算实例,基于阿里云弹性计算框架,用户可以几分钟内轻松创建FPGA实例...

支持以数据库为核心的结构化存储产品之间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...