在微服务项目中很多服务系统都是独立进程运行的,通过各个进程之间的相互协作来完成微服务的相关功能。这些进程之间的信息交互方式有很多如RPC、HTTP通讯等,springcloud使用的是restful风格的HTTP通讯模式。restful风格的通讯是最为常见的通讯模式之一。
RESTFUL:
RESTful网络请求是指RESTful风格的网络请求,其中REST是Resource Representational State Transfer的缩写,直接翻译即“资源表现层状态转移”。
Resource代表互联网资源。所谓“资源”是网络上的一个实体,或者说网上的一个具体信息。它可以是一段文本、一首歌曲、一种服务,可以使用一个URI指向它,每种“资源”对应一个URI。
Representational是“表现层”意思。“资源”是一种消息实体,它可以有多种外在的表现形式,我们把“资源”具体呈现出来的形式叫作它的“表现层”。比如说文本可以用TXT格式进行表现,也可以使用XML格式、JSON格式和二进制格式;视频可以用MP4格式表现,也可以用AVI格式表现。URI只代表资源的实体,不代表它的形式。它的具体表现形式,应该由HTTP请求的头信息Accept和Content-Type字段指定,这两个字段是对“表现层”的描述。
State Transfer是指“状态转移”。客户端访问服务的过程中必然涉及数据和状态的转化。如果客户端想要操作服务端资源,必须通过某种手段,让服务器端资源发生“状态转移”。而这种转化是建立在表现层之上的,所以被称为“表现层状态转移”。客户端通过使用HTTP协议中的四个动词来实现上述操作,它们分别是:获取资源的GET、新建或更新资源的POST、更新资源的PUT和删除资源的DELETE。
由于restful风格是使用HTTP通讯模式,所以对网络的要求会比较高,可能存在网络延迟、连接中断、通讯超时等问题的存在,但总的来说瑕不掩瑜,对于大部分系统来说这些小缺陷都是在可以接受的范围。