拓展性的聊一聊RPC(Remote Procedure Call)
RPC使用于大型公司内,由于公司的业务增多避免不了将不同的业务分配到不同的主机上进行解耦,它请求其他主机上的服务就像请求自己本机上的服务一样简单。
-HTTP是属于面向接口,通常所谓的RESTful风格的服务接口,很多企业都是这样,一边开发一边写文档。比如,
POST http://www.httpexample.com/restful/buyer/info/share然后注明所有的参数和返回值类型,可能是json对象或者xml类型文件。
那么RPC和HTTP对比来说,RPC适用于大型企业,公司的子系统比较多,借口非常多的情况下,其优越性就体现出来了,首先是长链接,不用每次都像HTTP三次握手,减小网络开销,其次就是RPC框架一般都有注册中心,有丰富的监控管理。例如Facebook的Thrift,Google的gPRC和阿里的Dubbo。
- -RPC可以利用NIO进行实现,提出NIO就相应名词就有BIO和AIO,
- -BIO(Block IO)阻塞IO,它是面向流的,之前进行的socket时,Client发送一个读、写请求后,线程进入阻塞阶段,当完全读完或者写完后才算执行结束,这样及其浪费资源。这样就在Java 1.7的时候提出了NIO。
- -NIO (No-block IO) 非阻塞IO,它是面向缓冲区的(ByteBuffer),NIO其实现原理是当用户发送一个读请求后,它不仅可以读取到目前可用的数据,如果当没有数据可读的时候,线程会做其他的事情,而不是在那傻傻的等(阻塞住);当发送一个写请求是,它将数据写到某个通道上,不用等待写完成,这个线程可以去做其他的事情。这样可以单独的启动一个线程,去管理和选举多个输入输出的通道(Channel)。从逻辑上来讲,这个是同步的。
- -AIO (Asynchronous IO) 异步非阻塞IO,实现原理和NIO差不多,但是其创建了多个回调函数,当处理结果结束后,它会自动的去通知其他函数进行处理数据,这样也不用去傻傻的等待结束。这个有点类似于前段的Ajax异步通信。
详细解决方案
拓展性的聊一聊RPC(Remote Procedure Call)
热度:95 发布时间:2023-09-30 05:01:32.0
相关解决方案
- fatal error; call to a member function query() on a non-object异常求回答啊 php+sqlite
- log4j:ERROR setFile(null,false) call failed.解决方法
- Crystal Report & Procedure,该如何解决
- 关于httpWebRequest请求失败异常:The specified call count is not a number
- The remote server returned an error: (403) Forbidden解决思路
- call stack 窗口怎么恢复
- asp.net2.0不支持jsrs(Javascript Remote Scripting)吗?解决方案
- Zigbee remote controller的开发,该如何解决
- Zigbee remote controller的开发解决办法
- 求问 什么是MO/MT call 啊解决思路
- 运行Stateless,Remote EJB时候报javax.naming.NameNotFoundException: FirstEjbBean not bound解决办法
- call x"AF" using set-bit-pairs enable-esc-and-f1解决办法
- call esp怎么执行
- call 0229跟call si分别是什么寻址方式
- !call 为什么转不过去?
- call word ptr和call dword ptr有关问题
- call far ptr '标号'的有关问题[答案]
- db2创造PROCEDURE成功,但是运行db2 call TESTCASE() 会报错
- db2创建PROCEDURE成功,但是运行db2 call TESTCASE() 会报错,该怎么解决
- remote access connection manager 异常5
- ClearCase remote client中怎么修改比较工具为第三方工具
- transfer: A call B, B hold A, B transfer C B Invite C的sip消息处理中,怎么知道A
- php连接mysql出错:Fatal error: Call to undefined function mysql_connect(),该如何处理
- thinkphp 有关问题 Call to undefined function
- 跟小弟我学aspectj之七 - call,execution,within,withincode
- 关于错 误 号:5异常描述:Invalid procedure call or argument
- Click-to-Call 或者 免费通 --免费电话解决办法
- Fatal error: Call to a member function query() on a non-object in G:\wamp\apache,该如何解决
- Call to undefined function bcompiler_write_header() 异常如何解决
- PHP对象编程有关问题,Call to a member function hello() on a non-object