RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。
RPC 调用分以下两种:
若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。
1、你在项目中使用过哪些RPC框架;
2、各个RPC框架都有哪些优缺点;
3、描述一下使用最满意的框架的使用心得;
技术书籍 x 1
云栖定制鼠标垫 x 3
多功能工具箱 x 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操作原理
gRPC实现原理类似
thrift与gRPC 比较
3、描述一下使用最满意的框架的使用心得;
使用最多的是thrift,版本0.9.3,其中设置连接数和超时时间有坑,特别是超时时间不单位,刚开始以为超时时间不生效。
海阔天空yy
已获得云栖定制鼠标垫
复制链接去分享
1、你在项目中使用过哪些RPC框架;
用过dubbo,spring cloud 走的是http应该也算RPC吧
2、各个RPC框架都有哪些优缺点;
dubbo上手很快,使用起来感觉很容易,初期可能会用的比较爽,但随着业务越来越大,可能会慢慢发现他有很多功能没有实现
pringcloud 组件比较多,不像dubbo初期看起来好像功能很有多,但当你了解到更多的组件的时候,就会发现还是spirngcloud的功能更多一些,虽然使用起来要配置的比较多,但等你全面了解了还是不错的
dubbo走的是tcp协议,springcloud走的是http协议,所以从协议上来说,dubbo性能更好一些,但从微服务的管理方面来说好像cloud更强一些
3、描述一下使用最满意的框架的使用心得;
dubbo吧,主要是感觉他找代码很多合,就算是跨微服务ctrl+左键也一样能跳过去,springcloud好像就不行了,可能需要自己封装接口实现吧.
微wx笑
已获得云栖定制鼠标垫
复制链接去分享
1、你在项目中使用过哪些RPC框架;
用过基于mina、netty的,大牌的没用的。
2、各个RPC框架都有哪些优缺点;
有篇文章说的不错:分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
3、描述一下使用最满意的框架的使用心得;
主要还是并发和序列化吧。
bianyili
已获得多功能工具箱
复制链接去分享
1、你在项目中使用过哪些RPC框架;
Thrift,avro,使用公司内部的总线框架自动生成服务端,客户端,类似gsoap,编解码使用avro进行二进制编解码,使用go语言进行json编解码。
2、各个RPC框架都有哪些优缺点;
thirft方便,支持C++,java多种语言
avro支持多种序列化
3、描述一下使用最满意的框架的使用心得;
thrift口参数中带map的参数比较费时间,换成vector快很多;
avro序列化大量json比较费时间,使用go语言的编解码json效率更高。