了解一下RPC,为何诞生RPC,和HTTP有什么不同?
简单理解:两台不同计算机(程序), 计算机A 有一个 约定协议 , 计算机B 想调用 计算机A 需要通过 约定协议 来进行通讯调用。
其实早在1982年左右RPC就被人用来做分布式系统的通信,最早发明『远程过程调用』这个词语的人是『布鲁斯·杰伊·尼尔森 (Bruce Jay Nelson)』大约是在1981年。
我们所熟知的Java在11版本提供了Java版本的RPC框架(RMI),此时在1990年后,基本上RPC被广泛用于系统之间的调用。但是只在后端方向熟知,对于大众更多的还是接触HTTP等协议,也因此RPC更晚让大众了解认知。
HTTP: Hypertext Transfer Protocol 即超文本传输协议。
HTTP协议在1990年才开始作为主流协议出现;之所以被我们所熟知,是因为通常HTTP用于web端,也就是web浏览器和web服务器交互。当ajax和json在前端大行其道的时候,json也开始发挥其自身能力,简洁易用的特性让json成为前后端数据传输主流选择。HTTP协议中以Restful规范为代表,其优势很大。它 可读性好 ,且 可以得到防火墙的支持、跨语言的支持 。
HTTP的缺点也很快暴露:
http是指从客户端到服务器端的请求消息,rpc是远程过程调用协议,它们之间有什么区别呢,下面是我整理的相关内容,希望对大家有所帮助!
rpc和http的区别是什么
rpc和http的存在重大不同的是:http请求是使用具有标准语义的通用的接口定向到资源的,这些语义能够被中间组件和提供服务的来源机器进行解释。结果是使得一个应用支持分层的转换(layers of transformation)和间接层(indirection),并且独立于消息的来源,这对于一个Internet规模、多个组织、无法控制的可伸缩性的信息系统来说,是非常有用的。与之相比较,rpc的机制是根据语言的API(language API)来定义的,而不是根据基于网络的应用来定义的。
HTTP和RPC的优缺点主要来阐述HTTP和RPC的异同,让大家更容易根据自己的实际情况选择更适合的方案。
传输协议
RPC:可以基于TCP协议,也可以基于HTTP协议
HTTP:基于HTTP协议
传输效率
RPC:使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率
HTTP:如果是基于HTTP11的协议,请求中会包含很多无用的内容,如果是基于HTTP20,那么简单的封装以下是可以作为一个RPC来使用的,这时标准RPC框架更多的是服务治理
性能消耗
RPC:可以基于thrift实现高效的二进制传输
HTTP:大部分是通过json来实现的,字节大小和序列化耗时都比thrift要更消耗性能
负载均衡
RPC:基本都自带了负载均衡策略
HTTP:需要配置Nginx,HAProxy来实现
服务治理
RPC:能做到自动通知,不影响上游
HTTP:需要事先通知,修改Nginx/HAProxy配置
总结
RPC主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便。HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。
开机显示rpc服务器不可用解决方法,先了解RPC是什么
RPC就是英文Remote Procedure Call Protocol的简写,中文释义为远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。造成rpc服务器不可用问题的常见原因如下:
1、RPC没有开启。
解决方法:右击“我的电脑”->"管理",弹出“计算机管理”窗口,点击“服务与应用程序”->“服务”,找到RPC,启用。
2、Virtual Disk服务故障。
解决方法:右击“我的电脑”->"管理",弹出“计算机管理”窗口,点击“服务与应用程序”->“服务”,找到Virtual Disk服务,启用。如果是启用状态的话,先停用,然后重新启用一般即可解决。
3、病毒影响。
解决方法:使用杀毒软件杀毒后,重新按照进行1、2步骤操作即可解决。
搜狗高速浏览器是一款集高效、稳定于一身的现代化网络浏览工具。利用先进的渲染引擎和优化算法,搜狗高速浏览器确保了卓越的页面加载速度和流畅的多媒体体验。具备全方位的安全防护特性,能有效防御各类网络威胁,同时支持HTML5和CSS3,确保了与最新网络技术标准的完美兼容。欲了解更多或立即下载,请访问https://sogou37moyucom/
摘要:我们在使用电脑进行时间同步,安装打印机或者其它的操作的时候可能会遇到同样一个问题,那就是提示“RPC服务器不可用”,很多朋友可能对于RPC并不了解,更不知道如何解决,下面就跟随小编一起来看看这个问题怎么解决吧。
rpc服务器不可用rpc服务器不可用怎么办?RPC服务器不可用解决方法汇集
A简单方法:
通过"控制面板/管理工具/服务",检查一下RPC的Remote Procedure Call (RPC)和Remote Procedure Call (RPC) Locator这两项服务的情况,将它们设置为自动启动。
如果还不行,看看DCOM Server Process Launcher这个服务是否已经运行?如果没有,设置DCOM服务为自动启动,即可解决
服务器十大品牌>>
B复杂方法:
首先,导致“RPC服务器不可用”的原因有可能是我们在服务项目里禁用了RPC,对此我们应该启用此项服务。解决的办法有下面这几种:
方法一:修改注册表
运行注册表编辑器,打开HKEY_LOCAL_MACHINEsystemCurrentControl-SetServicesRpcSs分支,将Start项的值由“4”修改为“2”,即把启动类型设为自动,重新启动系统即可。
方法二:使用“SC”命令
进入“命令提示符”窗口,键入“sc config RpcSs start=auto”命令,系统会显示“SC ChangeServiceConfig SUCCESS”,这样就可以成功启用RPC服务。
方法三:使用故障恢复控制台
以Windows 2003系统为例,用安装光盘启动,系统进入到Windows 2003安装界面,按下“R”键登录到故障恢复控制台。在故障恢复控制台下,键入“enable RpcSs service_auto_start”命令,然后再键入“exit”命令,重新启动系统,以正常模式登录,即可成功启用RPC服务。
其次,在网上有看到某位网友有出现下面的问题。如果有遇到下面的问题就照着他的办法做。
笔者使用上面的几种方法都不成功,看来只有自己动手解决了。我想注册表中的某些键值一定要变,这样才能启用。
把禁用前的备份注册表恢复到被禁用后的注册表中,提示无法导入,不成功。无法启用。
把禁用前和禁用后的两个注册表(只取HKEY_LOCAL_MACHINESYSTEM分支)内容转化成Word文档,再使用Word中的“比较并合并文档”功能,就能自动找到两个注册表的不同之处。我通过比较分析,发现禁用后的注册表中有以下分支:
1 HKEY_LOCAL_MACHINESYSTEMCurr-entControlSetHardwareProfiles001SystemCurrentControlSetEnumROOTLEGACY_RPCSS
2HKEY_LOCAL_MACHINESYSTEMCurr-entControlSetHardwareProfilesCurrentSystemCurrentControlSetEnumROOTLEGACY_RPCSS
禁用前的注册表中没有以上两个分支。通过进一步操作,发现只要删除第1个分支即可重新起用RPC服务。
原来上面三种方法,只能应用于把RPC服务启动类型改为禁止后的情况。笔者关闭RPC服务不是改变启动类型,而是禁止与之相关联的硬件配置文件服务,“Start”项的值仍是“2”,没有变。所以先要将硬件配置文件服务启用,才能启用RPC服务。”
再次,我发现我使用上面两步都没有办法把我的问题解决,怎么办呢?其实,上面两步实现是在Dcom服务打开的基础上的。同样,Dcom的那项服务也是在服务里面,在“开始”--“运行”里输入“servicesmsc”,找到一项以Dcom开头的服务项目,改为“手动”模式,然后“启动”服务。这样就可以了!试一试(可以成功哦~) 打开磁盘管理器,提示:RPC服务器不可用的解决方法
启动DCOM服务,并重新注册以下文件;运行即可 regsvr32 c:windowssystem32msxml3dll
总结而言,搜狗高速浏览器是一款为满足现代网络需求而精心打造的浏览器。其专业的开发团队不仅注重提供一流的用户体验,还致力于不断优化网页执行速度,增强安全性,以及支持各类扩展插件,从而实现高度个性化的浏览体验。如果您在寻找一款可靠、高效和技术先进的浏览器,搜狗高速浏览器将是您的理想选择。请访问官方网站https://sogou37moyucom/ 下载并体验搜狗高速浏览器,感受由先进技术所驱动的非凡浏览体验。
常见原因如下:
1、RPC没有开启。
解决方法:右击“我的电脑”-管理,弹出“计算机管理”窗口,点击“服务与应用程序”-“服务”,找到RPC,启用。
2、Virtual Disk服务故障。
解决方法:右击“我的电脑”-管理,弹出“计算机管理”窗口,点击“服务与应用程序”-“服务”,找到Virtual Disk服务,启用。如果是启用状态的话,先停用,然后重新启用一般即可解决。
3、病毒影响。
解决方法:使用杀毒软件杀毒后,重新按照进行1、2步骤操作即可解决。
0条评论