Dubbo服务除了本身自己的Dubbo协议外,Dubbo框架还支持另外8中服务暴露协议:
RMI协议、Hessian协议、HTTP协议、WebService协议、Thrift协议、Memcached协议、Redis协议、
Rest协议。但在实际生产中,使用最多的就是Dubbo服务暴露协议。
各个协议的特点
建议:小数据大并发使用dubbo ,大数据小并发使用其他。【根据实际情况而定】
1、dubbo协议
- dubbo默认传输协议
- 连接方式:单连接
- 传输协议:长连接
- 传输方式:NIO异步传输
- 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者
- 无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串
2、rmi协议
- 采用JDK标准的java.rmi.*实现
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:TCP
- 传输方式:BIO同步传输
- 适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件
3、hession协议
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:HTTP
- 传输方式:BIO同步传输
- 适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者抗压能力较大,可传文件
4、http协议
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:HTTP
- 传输方式:BIO同步传输
- 适用范围:传输传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单
- 或URL参数参数,暂不支持传文件
5、webService协议
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:HTTP
- 传输方式:BIO同步传输
- 适用范围:系统集成,跨语言调用
6、thrift协议
Thrift是Facebook捐给Apache的一个RPC框架,其消息传递采用的协议即为thrift协议。
当前dubbo支持的thrift协议是对thrift原生协议的扩展。Thrift协议不支持null值的传递。
7、memcached协议与redis协议
它们都是高效的KV缓存服务器。它们会对传输的数据使用相应的技术进行缓存。
8、rest协议
若需要开发具有RESTful风格的服务,则需要使用该协议