RestFul简介
RestFul是基于WebService演进而来
WebService的问题大概如下:
- 由于使用的SOAP协议,使用WSDL,这本质上是使用的XML进行内容通信,速度太慢,处理的效率太低
- 如果想使用本地接口的方式调用,要利用开发工具根据WSDL文件生成很多工具代码,接口任何变动都回导致工具代码重新生成,开发特别繁琐
在2005年的时候,又有一个新的概念产生,既SOA(面向服务架构),他提出了一个服务总线(ESB)的概念。
1 | graph LR |
这ESB类似于设计模式里面适配器模式,不管服务提供方是使用什么语音实现的,在他注册到消息总线里面,用过使用同样的一套规范,这样客户端调用就省事了很多。
所有的服务由服务总线通过管理,但这个消息总线其实只是一种思想,具体要要通过具体的RPC框架实现,说到RPC,其中最有代表意义的就是前面以及学习过的dubbo开发技术,他可以使用dubbo协议,或者RMI协议,在传输层是用netty。
除开耳熟能详的dubbo,成长比较快的是Rest协议,这其实就是因为JSON的广泛应用,如果说是XML技术成就了webservice,那么JSON就造就了Rest服务。
不过Rest还是一个未成型的标准,SpringCloud就真正讲Rest作为了RPC的实现技术,SpringCloud这技术以及成为了这行业的趋势,而且 SpringCloud 也依照于 SpringBoot
开发技术,可以实现项目的打包发布以及单独运行。