干翻Dubbo系列第十一篇:Dubbo常见协议与通信效率对比

文章目录

文章说明

一:协议

1:什么是协议

2:协议和序列化关系

3:协议组成

(一):头信息

(二):体信息

4:Dubbo3中常见的协议

 5:不同协议的通信效率比较


文章说明


本文内容整理自《孙哥说Dubbo系列视频课程》,孙帅老师课程细致、全面、深入、性价比极高。B站搜孙帅suns可以找到对应的试听视频,或者直接添加老师微信号suns45与他直接联系

一:协议

1:什么是协议

客户端[消费者]与服务端[提供者]在传输数据时双⽅的约定。

大致就是除了咱们通信双方需要传递的真实数据(体信息)还包括大量的描述信息,这个描述信息被称为头信息。数据传递过去之后,经过反序列化,然后按照协议的描述信息进行拆解传递的数据就可以拿到最终的真实传递的数据,也就是体信息,比如咱们Http请求的请求参数或者是RPC时候的方法的参数。

2:协议和序列化关系

序列化是协议数据的传输⼀种格式。⽬的是为了提⾼协议在⽹络传输的效率。

同样的协议化数据,经过不同的序列化手段序列化之后,在网络传输中传输的大小是不一致的,具有不同的传输效率和对方想要获取到你实际的协议数据,也需要进行反序列化获取相应的协议数据,然后进行拆解,最终获取到真实的传输数据。

3:协议组成

(一):头信息

幻术:为了约束双方的新人关系,证明这是标准的通信数据的一种格式数据,相当于是通信双方的街头暗号。想要通信,暗号不能错!

序列化方式:数据传输的过程中,我们使用的是什么序列化方式,知道了序列化方式之后,我们才能基于具体的序列化方式记性反序列化传输过来的数据,然后在拆解协议数据。

操作方向性:客户端给服务端发情求,还是服务端给客户端响应请求

状态信息:基本上就是服务端给客户端返回的状态信息

数据大小:数据大小指的是,协议体数据量的大小,解决半包粘包的问题。

(二):体信息

体信息就是数据想要传输的信息本身,比说上图中的JSON

4:Dubbo3中常见的协议

dubbo协议:

dubbo在默认情况下使用的是dubbo协议,这是Dubbo定义的私有协议,应用在TCP层次。

rest协议:

rest协议这里主要是Http协议。为什么rest协议也很重要,Dubbo支持这个协议之后,就可以跟SpringCloud进行无缝对接了。

triple协议:

Dubbo3开发的新协议。

grpc协议:

云原生时代,GRPC十分重要了,Dubbo想要与云原生进行结合,必须支持GRPC。

剩下还有:thrift协议 webservice协议、rocketmq协议、redis协议、memcached协议,了解就好,用的很少。

 5:不同协议的通信效率比较

看到这个东西我们可以明确两个概念:

1:不同的协议,可以挑选不同的序列化方案。

2:不同的序列化方案和通信协议组合,对应的通信效率也是有很大的差异。

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

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

相关文章

Linux系统管理:虚拟机ESXi安装

目录 一、理论 1.VMware Workstation 2.VMware vSphere Client 3.ESXi 二、实验 1.ESXi 7安装 一、理论 1.VMware Workstation 它是一款专业的虚拟机软件,可以在一台物理机上运行多个操作系统,支持Windows、Linux等操作系统,可以模拟…

Prometheus流程图(自绘)-核心组件-流程详解

阿丹手绘流程图:图片可能有点小查看的时候放大看看哈! prometheus核心组件 prometheus server Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。Prometheus Server可以通过静态配置管理…

tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

Tauri Vue Typescript 一个使用 taurivuets 开发跨平台软件的模板,支持窗口头部自定义 UI 和拖拽和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。开源…

并发编程系列-Semaphore

Semaphore,如今通常被翻译为"信号量",过去也曾被翻译为"信号灯",因为类似于现实生活中的红绿灯,车辆是否能通行取决于是否是绿灯。同样,在编程世界中,线程是否能执行取决于信号量是否允…

基于php驾校驾驶理论考试模拟系统

驾校驾驶理论考试模拟系统,是基于php编程语言,mysql数据库进行开发,本系统分为用户和管理员两个角色,其中用户可以注册登陆系统,查看考试规则,进行驾照考试,查看考试得分,考试错题&a…

网络

mcq Java 传输层:拆分和组装,完成端到端的消息传递,流量控制,差错控制等 网络层: 寻址、路由,复用,拥塞控制,完成源到宿的传递。 显然A选项是错误的,有流量控制的是传输层…

力扣:61. 旋转链表(Python3)

题目: 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 示例&…

力扣221.最大正方形(动态规划)

思路: 思路:从[0,0]元素开始,计算每个元素对应其与[0,0]之间矩阵块中最大正方形边长情况:1)matrix [ i , j ] ‘0’ --> 元素对应的最大正方形为0。情况:2)matrix [ i , j ] ‘1’ -->…

当速度很重要时:使用 Hazelcast 和 Redpanda 进行实时流处理

在本教程中,了解如何构建安全、可扩展、高性能的应用程序,以释放实时数据的全部潜力。 在本教程中,我们将探索 Hazelcast 和 Redpanda 的强大组合,以构建对实时数据做出反应的高性能、可扩展和容错的应用程序。 Redpanda 是一个流…

openCV使用c#操作摄像头

效果如下: 1.创建一个winform的窗体项目(框架.NET Framework 4.7.2) 2.Nuget引入opencv的c#程序包(版本最好和我一致) 3.后台代码 using System; using System.Collections.Generic; using System.ComponentModel;…

LeetCode算法心得——限制条件下元素之间的最小绝对差(TreeSet)

大家好,我是晴天学长,今天用到了Java一个非常实用的类TreeSet,能解决一些看起来棘手的问题。 1 )限制条件下元素之间的最小绝对差 2) .算法思路 初始化变量:n为列表nums的大小。 min为整型最大值,用于记录…

讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?

同时向讯飞星火、文心一言和通义千问三个国产AI模型提个相同的问题: “python 写一个贪吃蛇的游戏代码” 看哪一家AI写的程序直接能用,谁就胜出! 讯飞星火 讯飞星火给出的代码: import pygame import sys import random# 初…

k8s 认证和权限控制

k8s 的认证机制是啥? 说到 k8s 的认证机制,其实之前咋那么也有提到过 ServiceAccouont ,以及相应的 token ,证书 crt,和基于 HTTP 的认证等等 k8s 会使用如上几种方式来获取客户端身份信息,不限于上面几种…

iPhone(iPad)安装deb文件

最简单的方法就是把deb相关的文件拖入手机对应的目录,一般是DynamicLibraries文件夹 参考:探讨手机越狱和安装deb文件的几种方式研究 1、在 Mac 上安装 dpkg 命令 打包 deb 教程之在 Mac 上安装 dpkg 命令_xcode打包root权限deb_qq_34810996的博客-CS…

基于php动漫周边电商购物网站系统

动漫周边电商网站系统,是基于php毕业设计,mysql数据库进行开发,本系统分为用户和管理员两个角色,其中用户可以注册登陆系统,用户查看商品分类,商品列表,查看动漫周边商品详情,加入购…

【学习笔记之java】使用RestTemplate调用第三方接口

1.首先需要导入依赖 <!-- RestTemplate使用导入的依赖--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency>2.跟启动类同级创建…

回归预测 | MATLAB实现GRU门控循环单元多输入多输出

回归预测 | MATLAB实现GRU门控循环单元多输入多输出 目录 回归预测 | MATLAB实现GRU门控循环单元多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现GRU门控循环单元多输入多输出&#xff0c;数据为多输入多输出预测数据&#xff0c;输入10个…

UDP 的报文结构以及注意事项

UDP协议 1.UDP协议端格式 1.图中的16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度 2.若校验和出错,会直接丢弃 2.UDP的报文结构 UDP报文主体分为两个部分:UDP报头(占8个字节)UDP载荷/UDP数据 1.源端口号 16位,2个字节 2.目的端口号 16位,2个字节 3.包长度 指示了…

Vue用JSEncrypt对长文本json加密以及发现解密失败

哈喽 大家好啊&#xff0c;最近发现进行加密后 超长文本后端解密失败&#xff0c;经过看其他博主修改 JSEncrypt原生代码如下&#xff1a; // 分段加密&#xff0c;支持中文JSEncrypt.prototype.encryptUnicodeLong function (string) {var k this.getKey();//根据key所能编…

【Git】(三)回退版本

1、git reset命令 1.1 回退至上一个版本 git reset --hard HEAD^ 1.2 将本地的状态回退到和远程的一样 git reset --hard origin/master 注意&#xff1a;谨慎使用 –-hard 参数&#xff0c;它会删除回退点之前的所有信息。HEAD 说明&#xff1a;HEAD 表示当前版本HEAD^ 上…