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框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
在这里插入图片描述
在这里插入图片描述

特性

  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” />

在这里插入图片描述
在这里插入图片描述

常见问题

在这里插入图片描述

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调用支持

面试题

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/287142.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑的内存条是什么?内存条的作用有哪些?

计算机已经是现代生活人们必不可少的一部分&#xff0c;计算机的性能决定因素之一就是内存条&#xff0c;内存条的作用有哪些&#xff1f;这篇文章让你了解内存条的主要作用。 内存条是什么 内存条是什么&#xff0c;它是计算机内部的一种重要硬件组件&#xff0c;用于临时存…

Linux 进程信号

文章目录 信号的概览信号的产生信号的处理信号集操作信号的捕捉补充与说明 信号的概览 信号由软件或硬件产生发送给进程&#xff0c;进程对其做相应处理。信号是进程之间事件异步通知的一种方式&#xff0c;属于软中断。 Linux下的全部信号由指令kill -l查询 Linux 下指令的…

el-table自定义表格数据

如上所示&#xff1a; 表格内的数据是&#xff1a;当前班级所在名次段的人数 / 当前班级1至n名的累计人数 5/12 也就是 5/75 需要变更为&#xff1a; 截至到当前名次段总人数&#xff08;上次考试&#xff09; / 截至到当前名次段总人数&#xff08;本次考试&#xff09…

C++共享和保护——(5)编译预处理命令

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 耕耘者的汗水是哺育种子成长的乳汁&am…

【数据结构】栈的使用|模拟实现|应用|栈与虚拟机栈和栈帧的区别

目录 一、栈(Stack) 1.1 概念 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的应用场景 1. 改变元素的序列 2. 将递归转化为循环 3. 括号匹配 4. 逆波兰表达式求值 5. 出栈入栈次序匹配 6. 最小栈 1.5 概念区分 一、栈(Stack) 1.1 概念 栈&#xff1a;一种特殊的线性表&…

SpringBoot之分层解耦以及 IOCDI的详细解析

### 3.2 分层解耦 刚才我们学习过程序分层思想了&#xff0c;接下来呢&#xff0c;我们来学习下程序的解耦思想。 解耦&#xff1a;解除耦合。 #### 3.2.1 耦合问题 首先需要了解软件开发涉及到的两个概念&#xff1a;内聚和耦合。 - 内聚&#xff1a;软件中各个功能模块内…

3d抄数逆向建模服务造纸机械叶轮三维扫描曲面建模-CASAIM

在造纸机械中&#xff0c;叶轮是重要的组成部分&#xff0c;造纸机械叶轮在使用过程中会承受较大外力的摩擦&#xff0c;长期使用容易导致外观变形破损&#xff0c;从而降低叶轮的工作效率和精度。因此&#xff0c;定期生产制作同类型的造纸机械叶轮产品&#xff0c;以用于替换…

YOLOv5改进 | SPPF | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)

一、本文介绍 本文给大家带来是用最新的RT-DETR模型中的AIFI模块来替换YOLOv5中的SPPF。RT-DETR号称是打败YOLO的检测模型&#xff0c;其作为一种基于Transformer的检测方法&#xff0c;相较于传统的基于卷积的检测方法&#xff0c;提供了更为全面和深入的特征理解&#xff0c…

2023.12.17Linux基础命令

ls -l详细信息 -a所有 springcloud微服务 ctrlalt鼠标左键&#xff0c;从虚拟机中回到本机 执行这两条语句 拿到远程主机的ip地址之后就要试图连接 要实现连接&#xff0c;就要有远程连接的软件 ssh和http一样&#xff0c;也是一种协议 SSH 是 Secure Shell&am…

GD32F4中断向量查询

中断向量表 中断向量对应函数 __Vectors DCD __initial_sp ; Top of StackDCD Reset_Handler ; Reset HandlerDCD NMI_Handler ; NMI HandlerDCD HardFault_Handler ;…

客户关系管理系统 crm

系统开发环境以及版本 操作系统&#xff1a; Windows_7集成开发工具&#xff1a; Eclipse EE_4.7编译环境&#xff1a;JDK_1.8Web服务器&#xff1a;Tomcat_9.0数据库&#xff1a;MySQL_5.7.23 系统框架 spring框架springmvc框架mybatis框架Logback日志框安全验证框架maven框架…

std::mem_fn函数

第一次遇到这个函数&#xff0c;记录一下 std::mem_fn 是 C 标准库 <functional> 头文件中提供的函数模板&#xff0c;用于生成成员函数的函数对象。它允许将成员函数包装成可调用对象&#xff0c;用于传递给标准库算法、函数对象、以及一些支持可调用对象的函数。 templ…