提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 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框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
特性
- 透明化的远程方法RPC调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
- 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
- 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Dubbo 和 Spring Cloud区别
- 通信方式不同:Dubbo 使用的是 RPC 通信,而Spring Cloud 使用的是HTTP RESTFul 方式。
- 组成不一样:
– 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协议的。
- dubbo 协议 (默认)
- rmi 协议
- hessian 协议
- http 协议
- webservice 协议
- thrift 协议
- memcached 协议
- redis 协议
- 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” />
常见问题
2、rmi 协议
3、hessian 协议
4、http 协议
基于http表单的远程调用协议。参见:[HTTP协议使用说明]
特性
- 连接个数:多连接
- 连接方式:短连接
- 传输协议:HTTP
- 传输方式:同步传输
- 序列化:表单序列化 ,即 json
- 适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
- 适用场景:需同时给应用程序和浏览器JS使用的服务。
5、webservice 协议
6、thrift 协议
7、memcached 协议
8、redis 协议
9、rest ( 就是 RestFull)
基于标准的Java REST API——JAX-RS 2.0(Java API for RESTful Web Services的简写)实现的REST调用支持
面试题