微服务调用为什么用RPC框架,http不更简单吗?

简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。传输过程中,也因为序列化方式的不同,又有一些框架和协议,比如Dubbo中的Dubbo协议,gRpc—Protobuf序列化协议等等。其实,都是基于远程调用的概念,何为远程调用?

重点是,RPC就是远程调用,远程调用就是客户端把调用的接口,参数,参数类型,方法,返回值,返回值类型等(这些称为方法签名),通过如上的协议,发送给服务端,告知服务端需要调用的接口方法,这个过程就是RPC的实现过程!HTTP和RPC是不同层面的两个东西!

性能方面,HTTP本身是基于TCP协议的,属于应用层协议,所以HTTP协议本身在实现过程中就会占用大量的资源(内存,带宽等),性能上肯定没有通过TCP直接实现RPC协议快,不管HTTP如何优化肯定的是不如TCP的!而TCP则是依靠字节码,现在普遍采用的是将客户端调用的接口信息,序列化的方式发送给服务端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化后字节码最小的是Protobuf),序列化后的字节码越小,占用带宽越少,序列化时间越短,线程IO等待时间就会越小。所以,在具体应用层面有很多可探讨的技术,可以根据自己的硬件能力来选择相应的技术就可以了!

欢迎热爱技术的人来探讨!

微服务调用为什么用RPC框架,http不更简单吗?

RPC和web service有什么异同?

微服务调用为什么用RPC框架,http不更简单吗?

从事开发行业的朋友们都听说过一些名词,比如SOA、Web Service 、RPC、RESTful 等,特别是架构领域这些术语出现的频率也是很高的。这几个名词其实说的都是同一个东西,那就是服务,但很多朋友分不清它们之间的区别,下面我给大家梳理一下。

RPC是啥?

RPC代表的是远程过程调用(Remote Procedure Call),它主要是面向方法(函数)级别的,我们只需要调用特定的方法来实现特定功能,而不需要了解其细节是如何实现的。它是Client/Server这种模式的。

说得通俗点就是,比如一套系统有一些核心代码(方法/函数)你不希望在此系统中植入(为了保密,防止被使用者破解),而是将这个核心代码放置在其它的服务器上运行,此系统只能调用远程服务器上的特定方法来实现功能。

RPC给我们的直观感觉就是,可以像调用本地方法(函数)一样去调用远程服务器上的方法(函数),具体用什么协议(如:HTTP、TCP、UDP、或自定义协议)、以什么形式(如:Json、XML、Binary、Protobuf)来传递数据都是可以自定义的。

Web Service又是啥?

权威解释是:Web Service是一种跨语言跨操作系统的远程调用技术。如果单从字面去理解,它就是以WEB形式(HTTP协议)提供的Service服务,这是一种提供Service服务的形式,可以理解为是一类服务方式的统称。

RPC和Web Service的异同

1、相同点

RPC和Web Service作用是非常相似的,都是远程调用技术,都是一种概念。

2、不同点

RPC用什么协议,以什么形式传输数据是可以定制的,技术上可选择的余地更大;而Web Service则是以WEB形式提供的服务,协议自然就是HTTP/HTTPS了,可选择余地较小。

常见的Web Service可以用SOAP、RPC、RESTful来实现,但不能说RPC是Web Service的子级,因为RPC并不一定非要使用HTTP协议来实现。

RPC性能一般优于Web Service,在体系上RPC比Web Service要复杂的多。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

RPC服务器不可用怎么办?

用户在使用电脑进行时间同步,安装打印机或者其它的操作的时候可能会遇到同样一个问题,那就是提示“RPC服务器不可用”,当出现这个提示时,该怎么做呢,以下是具体的解决步骤:

1.打开“运行”窗口,可以按“Win + R”快速打开“运行”窗口,输入“services.msc”来打开“服务”窗口。

微服务调用为什么用RPC框架,http不更简单吗?

2.也可以通过右击桌面或“开始”菜单中的“计算机”图标,从弹出的右键菜单中选择“管理”项。

微服务调用为什么用RPC框架,http不更简单吗?

3.从打开的“计算机管理”窗口中,展开“服务和应用程序”-“服务”项,找到“RPC Loader”项,双击打开。

微服务调用为什么用RPC框架,http不更简单吗?

4.从打开的“RPC Loader”属性窗口中,就会发现当前此服务处于停止状态,此时我们需要点击“启动类型”下拉列表,将其设置为“自动”。

微服务调用为什么用RPC框架,http不更简单吗?

5.接着点击“启动”按钮,将此“RPC Loader”服务开启,并点击“确定”完成设置。

微服务调用为什么用RPC框架,http不更简单吗?

6.还需要确保“RPC(call)”服务正常开启,只需要双击对应的服务,从打开的“属性”窗口中查看“服务状态”来判断。

微服务调用为什么用RPC框架,http不更简单吗?

"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论