dubbo的通信方式?
dubbo支持多种协议,默认使用的是dubbo协议。
- dubbo
- 缺省协议采用单一长连接和NIO异步通讯,适合小数据量大并发的服务调用,以及消费者机器数远大于服务提供者。
- 反之,Dubbo缺省协议不适合传送大数据量的服务。
- 使用mina,hessian,tbremoting交互
- 单链接、长连接、TCP、NIO异步传输,Hessian二进制序列化
- rest
- 基于标准的Java REST API- JAX-RS 2.0实现的REST调用支持
- http
- 基于HTTP表单的远程调用协议, 采用Spring 的HttpInvoker
- 多连接,短连接
- HTTP
- 同步传输,表单序列化
- hessian
- Hessian协议用于集成Hessian的服务,底层采用Http通讯,采用Servlet暴露,缺省内嵌jetty
- 可以和原生Hessian服务互操作
- 多连接,短连接,HTTP,Hessian二进制序列化
- redis
- thrift
- 对原生thrift协议的扩展,增加了一些额外的头信息
- 与原生的不兼容
- gRPC
- 2.7.5开始支持gRPC,HTTP/2
- memcached
- rmi
- JDK标准的java.rmi.*,阻塞式短连接和JDK标准序列化
- 多连接,短连接,TCP,同步传输,Java标准序列化
- webservice
- 基于WebService的远程调用协议,apacha CXF
- 消费者可以直接用标准WebService接口调用
- 多连接、短连接,HTTP,同步传输,SOAP文本序列化,跨语言
参考链接:
https://dubbo.apache.org/zh/docs/v2.7/user/references/protocol/webservice/