标签归档:http

RPC服务 —— http

[toc]

1、什么是RPC

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

当我们对网站进行SOA化时,我们就需要通过RPC服务来保持服务与服务之间的通信。RPC的实现包括客户端和服务端。服务端提供服务,客户端进行调用。现在比较常见有2种方式的RPC服务,一个是基于HTTP协议的RPC服务,另外一个是基于TCP协议的RPC服务。本文将介绍一下基于HTTP协议的RPC服务。

2、基于HTTP的RPC服务

HTTP是基于TCP之上的一个协议,所以其相对TCP协议比较稳定,但是相对性能也稍差一些。

2.1、服务端

在php中,使用基于HTTP的PRC服务,那么就需要借助于nginx/apache来作为服务器。

服务端,我们可以使用上面的目录结构。
index.php 作为一个入口,并且做一些初始化的动作。
Api目录下存放所有提供服务的文件。
当然这只是一个比较简单目录结构,我们可以根据自己的项目去改造、去变化。

下面是简单实现代码。

2.2、客户端

客户端我们可以php的curl库来完成。

总结

当然上面是一个最简单的例子。在做架构中,我们需要对其扩充,比如安全验证、序列化等等的功能扩展。