首页 > 后端开发 > 正文

php之rpc框架 什么是 RPC 框架?

2023-09-06 08:14:37 | 我爱编程网

对于后端开发比较关注的小伙伴们一定非常关心php之rpc框架 什么是 RPC 框架?,今天我爱编程网小编为大家整理了以下内容,下面一起来看看吧。

php之rpc框架 什么是 RPC 框架?

RPC框架(2 - 实现服务端注册多个服务)

5.1中我们注册完HelloService的实现类,服务器就自行启动了。针对上述问题,将服务的注册和服务器启动分离,使得服务端可以提供多个服务。

我们需要一个容器,这个容器很简单,就是 保存一些本地服务的信息,并且在获得一个服务名字的时候能够返回这个服务的信息。 创建一个 ServiceRegistry 接口:

一目了然, 一个register注册服务信息,一个getService获取服务信息。

我们新建一个默认的注册表类 DefaultServiceRegistry 来实现这个接口,提供服务注册服务,如下:

我们将 服务名与提供服务的对象的对应关系保存在一个 ConcurrentHashMap 中,并且使用一个 Set 来保存当前有哪些对象已经被注册。 在注册服务时, 默认采用这个对象实现的接口的完整类名作为服务名 ,例如某个对象 A 实现了接口 X 和 Y,那么将 A 注册进去后,会有两个服务名 X 和 Y 对应于 A 对象。 这种处理方式也就说明了某个接口只能有一个对象提供服务。

获得服务的对象就更简单了,直接去 Map 里查找就行了。

为了降低耦合度,我们不会把 ServiceRegistry 和某一个 RpcServer 绑定在一起,而是 在创建 RpcServer 对象时,传入一个 ServiceRegistry 作为这个服务的注册表。

那么 RpcServer 这个类现在就变成了这样:

在创建 RpcServer 时需要传入一个已经注册好服务的 ServiceRegistry,而原来的 register 方法也被改成了 start 方法,因为服务的注册已经不由 RpcServer 处理了,它只需要启动就行了。

而在 每一个请求处理线程(RequestHandlerThread)中也就需要传入 ServiceRegistry 了,这里把处理线程和处理逻辑分成了两个类: RequestHandlerThread 只是一个线程,从ServiceRegistry 获取到提供服务的对象后,就会把 RpcRequest 和服务对象直接交给 RequestHandler 去处理,反射等过程被放到了 RequestHandler 里。

(1)处理线程类(工作线程 ):RequesthandlerThread.java:处理线程,接收对象等

(2)处理逻辑类:RequestHandler.java:通过反射进行方法调用

在这种情况下,客户端完全不需要做任何改动。 我爱编程网

我比较懒,还是搞一个服务的,就是测试下兼容性而已(理论上没问题)。

服务端的测试:

客户端不需要变动。

执行后应当获得和上次相同的结果。

php之rpc框架 什么是 RPC 框架?

什么是 RPC 框架?

RPC(Remote Procedure Call,即远程过程调用)是建立在Socket之上的,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用)。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法。

由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。对于RPC架构来说,应用越底层,代码越复杂、灵活性越高、效率越高;应用越上层,抽象封装的越好、代码越简单、效率越差。

RPC 框架注意事项

RPC 的调用通常为了方便使用,会被伪装成普通方法调用的形式。但实际二者之间存在巨大的差异,进程内的方法调用的时间量级是 ns(纳秒),而进程间的 RPC 方法调用时间量级通常是 ms(毫秒),它们之间差着 10 的六次方。

因此,微服务架构下,内部主服务链之间的 RPC 调用需要异步化,服务之间的调用请求和等待结果相互之间解耦。

php之rpc框架 什么是 RPC 框架?

rpc框架有哪些

以Java领域为例,rpc框架有:
1、传统的webservice框架:ApacheCXF、ApacheAxis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。
2、新兴的微服务框架:Dubbo、springcloud、ApacheThrift等等。
RPC(RemoteProcedureCallProtocol):远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。

以上就是我爱编程网小编为大家带来的内容了,希望能够帮助到大家,了解更多后端开发资讯敬请关注我爱编程网。
与“php之rpc框架 什么是 RPC 框架?”相关推荐
php写rpc框架 什么是 RPC 框架?
php写rpc框架 什么是 RPC 框架?

rpc框架有哪些以Java领域为例,rpc框架有:1、传统的webservice框架:ApacheCXF、ApacheAxis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。2、新兴的微服务框架:Dubbo、springcloud、ApacheThrift等等。RPC(RemoteProcedureCallProtocol):远程过程调用协

2023-09-09 04:42:56
基于rpc的php框架 什么是 RPC 框架?
基于rpc的php框架 什么是 RPC 框架?

rpc框架有哪些以Java领域为例,rpc框架有:1、传统的webservice框架:ApacheCXF、ApacheAxis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。2、新兴的微服务框架:Dubbo、springcloud、ApacheThrift等等。RPC(RemoteProcedureCallProtocol):远程过程调用协

2023-09-17 17:30:14
php异步rpc框架 rpc框架有哪些
php异步rpc框架 rpc框架有哪些

php有没有其他好用的微服务框架?微服务这个技术在这几年很火啊,用人话说:微服务架构是一项在云中部署应用和服务的新技术。PHP微服务框架也是这几年才发展起来,大部分PHPer应该还没有接触过PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内

2023-09-13 14:26:22
php中流行的rpc框架 rpc框架有哪些
php中流行的rpc框架 rpc框架有哪些

rpc框架有哪些以Java领域为例,rpc框架有:1、传统的webservice框架:ApacheCXF、ApacheAxis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。2、新兴的微服务框架:Dubbo、springcloud、ApacheThrift等等。RPC(RemoteProcedureCallProtocol):远程过程调用协

2023-09-30 19:18:45
php的轻量级rpc框架yar 什么是rpc框架,及其作用,在php方向上的使用
php的轻量级rpc框架yar 什么是rpc框架,及其作用,在php方向上的使用

rpc框架有哪些以Java领域为例,rpc框架有:1、传统的webservice框架:ApacheCXF、ApacheAxis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。2、新兴的微服务框架:Dubbo、springcloud、ApacheThrift等等。RPC(RemoteProcedureCallProtocol):远程过程调用协

2023-10-04 20:55:24
php签到功能实现rpc框架 rpc框架有哪些
php签到功能实现rpc框架 rpc框架有哪些

如何实现一个简单的RPC框0,服务接口定义---Echo.java/**定义了服务器提供的服务类型*/publicinterfaceEcho{  publicStringecho(Stringstring);}一,客户端代码分析--实现类:MainClient.java客户端实现包括:获得一个代理对象,并使用该代理对象调用服务器的服务。获取代理对象时,需要指定被

2023-09-29 07:15:36
rpc框架对php的支持 主流的RPC框架有哪些?
rpc框架对php的支持 主流的RPC框架有哪些?

主流的RPC框架有哪些?Thrift是由Facebook开源的一个RPC框架,现在已经挂在apache.org下了。主要的几个好处:\x0d\x0a1.支持非常多语言,包括在WEB开发中很常用的PHP,以及最重要的C++/Python/Java等WEB后端常用语言,当然,还包括很cool的Ruby、Erlang。\x0d\x0a2.完整的RPC框架实现,用脚本生成通讯相关的框架代码,开发者只

2023-08-30 04:47:58
rpc框架有哪些php ThinkPHP框架如何开发RPC接口
rpc框架有哪些php ThinkPHP框架如何开发RPC接口

swoole框架都有哪些Hyperf:高性能企业级协程框架(推荐学习:swoole视频教程)Hyperf是基于Swoole4.4+实现的高性能、高灵活性的PHP协程框架,内置协程服务器及大量常用的组件,性能较传统基于PHP-FPM的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于PSR标准实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是可替换与可

2023-09-22 18:57:40