dubbo--03--- dubbo 支持的9种协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Dubbo框架
    • 特性
    • Dubbo 和 Spring Cloud区别
  • dubbo 支持的9种协议
    • 协议类型
    • 1、dubbo 协议 (==默认==)
        • 特性
        • 配置
        • 常见问题
    • 2、rmi 协议
    • 3、hessian 协议
    • 4、http 协议
        • 特性
    • 5、webservice 协议
    • 6、thrift 协议![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/286768b5629044fe96b3a277354eb1ae.png)
    • 7、memcached 协议
    • 8、redis 协议
    • 9、rest ( 就是 RestFull)
  • 面试题


Dubbo框架

Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
dubbo--03--- dubbo 支持的9种协议_第1张图片
dubbo--03--- dubbo 支持的9种协议_第2张图片

特性

  1. 透明化的远程方法RPC调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
  2. 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
  3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

Dubbo 和 Spring Cloud区别

  1. 通信方式不同:Dubbo 使用的是 RPC 通信,而Spring Cloud 使用的是HTTP RESTFul 方式。
  2. 组成不一样
    – dubbo的服务注册中心为Zookeerper,服务监控中心为dubbo-monitor,无消息总线、服务跟踪、批量任务等组件;
    – Spring Cloud的服务注册中心为spring-cloud netflix enruka Nacos,服务监控中心为spring-boot admin,有消息总线、数据流、服务跟踪、批量任务等组件;

dubbo 支持的9种协议

协议类型

Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。

  1. dubbo 协议 (默认)
  2. rmi 协议
  3. hessian 协议
  4. http 协议
  5. webservice 协议
  6. thrift 协议
  7. memcached 协议
  8. redis 协议
  9. rest ( 就是 RestFull)

1、dubbo 协议 (默认)

1、dubbo 缺省协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况
2、不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。

缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。

特性
  • 连接个数:单连接
  • 连接方式:长连接
  • 传输协议:TCP
  • 传输方式:NIO异步传输
  • 序列化:Hessian 二进制序列化
  • 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满 - 提供者,尽量不要用dubbo协议传输大文件或超大字符串。
  • 适用场景:常规远程服务方法调用
配置

<dubbo:protocol name="dubbo" port="20880" />


<dubbo:provider protocol="dubbo" />


<dubbo:service protocol="dubbo" />


<dubbo:protocol id="dubbo1" name="dubbo" port="20880" />
<dubbo:protocol id="dubbo2" name="dubbo" port="20881" />


<dubbo:protocol name=“dubbo” port=“9090” server=“netty” client=“netty” codec=“dubbo” 
				serialization=“hessian2” charset=“UTF-8” threadpool=“fixed” threads=“100”
		 		queues=“0” iothreads=“9” buffer=“8192” accepts=“1000” payload=“8388608” />


dubbo--03--- dubbo 支持的9种协议_第3张图片
dubbo--03--- dubbo 支持的9种协议_第4张图片

常见问题

dubbo--03--- dubbo 支持的9种协议_第5张图片

2、rmi 协议

dubbo--03--- dubbo 支持的9种协议_第6张图片
dubbo--03--- dubbo 支持的9种协议_第7张图片

3、hessian 协议

dubbo--03--- dubbo 支持的9种协议_第8张图片

4、http 协议

基于http表单的远程调用协议。参见:[HTTP协议使用说明]

特性
  • 连接个数:多连接
  • 连接方式:短连接
  • 传输协议:HTTP
  • 传输方式:同步传输
  • 序列化:表单序列化 ,即 json
  • 适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
  • 适用场景:需同时给应用程序和浏览器JS使用的服务。
    dubbo--03--- dubbo 支持的9种协议_第9张图片
    dubbo--03--- dubbo 支持的9种协议_第10张图片

5、webservice 协议

dubbo--03--- dubbo 支持的9种协议_第11张图片
dubbo--03--- dubbo 支持的9种协议_第12张图片

6、thrift 协议dubbo--03--- dubbo 支持的9种协议_第13张图片

7、memcached 协议

dubbo--03--- dubbo 支持的9种协议_第14张图片

8、redis 协议

dubbo--03--- dubbo 支持的9种协议_第15张图片

9、rest ( 就是 RestFull)

基于标准的Java REST API——JAX-RS 2.0(Java API for RESTful Web Services的简写)实现的REST调用支持

面试题

dubbo--03--- dubbo 支持的9种协议_第16张图片
dubbo--03--- dubbo 支持的9种协议_第17张图片

你可能感兴趣的:(dubbo)