目录
1、HTTP通信协议
HTTP通信一般用于普通业务场景,非高并发,单次请求小数据量,它的优势在于屏蔽了语言的差异,特别适合于跨语言、跨平台的服务调用场景。
参考文档:Http、RESTful、RPC、MQ、Socket 概念与区别
1.1 HTTP 特点
- 基于C/S模式,客户端通过URL向服务端发送请求,其信息交换过程为:建立连接、发送请求信息、发送响应信息、关闭连接。
- 无连接,指 限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。这样可以节省传输时间。
- 无状态,指协议对于事务处理没有记忆能力。
1.2 HTTP Method
- GET 获取一个资源
- PUT 修改一个资源
- POST 添加一个资源
- DELETE 删除一个资源
1.3 HTTP 状态码
- 200 - 请求成功
- 301 - 重定位,资源被永久转移到其他URL
- 404 - 请求资源不存在
- 500 - 内部服务器错误
2、RPC通信协议
RPC,即 远程过程调用,一种标准,屏蔽底层通信细节,可以直接调用。简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个
函数或方法(可统称为服务)并得到返回的结果。RPC在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。
在Java领域比较流程的RPC框架有:阿里的Dubbo、Google 的GPC、新浪的Motan。
3、MQ通信协议
MQ通信一般用于同一个公司的多个业务应用系统之间,用于异步处理、应用解耦、削峰填谷,如果客户端的调用依赖于消息的处理结果,此时MQ通信协议不太适用于这种场景。