【RPC】02 —— RPC基础:协议
1. 现有的HTTP协议为啥不用?
RPC中的协议是围绕着应用层协议展开的,而HTTP也是应用层的协议。但RPC更多的是负责应用间的通信,所以对性能的要求更高。而HTTP协议的数据包相对于请求数据本身要大很多,又需要加入很多无用的内容,换行符,回车符等。再者HTTP属于无状态协议,客户端无法对请求和相应进行关联,每次请求都需要重新建立和关闭。所以RPC要选择更好性能的协议。
2. 常见的RPC通信协议
- RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于Java程序之间的通讯。
- Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。
- Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。
- Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。
测试结果显示,几种协议的通讯效率依次为:
RMI > Httpinvoker >= Hessian >> Burlap >> web service
3. 一个协议有什么?
魔术位:表明这是什么协议,DUBBO,HTTP,REDIS等等协议。