七、Google Protobuf

news/2024/9/24 23:24:53/

这里写自定义目录标题

  • 一、编码和解码
  • 二、Netty本身的编码解码机制和存在的问
  • 三、Protobuf
  • 四、Protobuf示例1
  • 五、ProtoBuffer传输多种数据类型

一、编码和解码

二、Netty本身的编码解码机制和存在的问

netty提供的编码器

netty提供的解码器

存在的问题

  • 无法跨语言
  • 序列化后的体积太大,是二进制编码的5倍多
  • 序列化性能太低

三、Protobuf

Protobuf全称Google Protocol Buffers,是一种轻便高效的结构化数据存储格式。 可以用于结构化数据串行化(序列化)。它很适合做数据存储或者RPC的数据交换格式

支持跨平台、跨语言;高性能、高可靠性。

通过 proto.exe 编辑器根据 xxx.proto文件自动生成java文件

protobuf 使用示意图

四、Protobuf示例1

在这里插入图片描述

五、ProtoBuffer传输多种数据类型

上述代码存在的问题: 服务解码的时候只能对 StudentPOJO.student对象进行解码
在这里插入图片描述


http://www.ppmy.cn/news/1450863.html

相关文章

软件测试面试之常见编程算法笔试题

1.请写出冒泡排序。 #冒泡排序:n*n def bubbleSort(array):maxindex len(array)-1maxValue array[maxindex]k0while maxindex:for i in range(1,maxindex):if array[i-1]>array[i]:temp array[i]array[i] array[i-1]array[i-1] tempk1maxindex -1print(k)re…

Python IDE(集成开发环境)有很多,以下是一些常用的选项

Python IDE(集成开发环境)有很多,以下是一些常用的选项: PyCharm:PyCharm被认为是普及率和使用率最高的一款Python IDE集成开发环境工具。它功能强大,支持多种开发模式,如科学计算、Web开发、数…

上海计算机学会2022年4月月赛C++丙组T3平衡括号(简)

题目描述 给定一个只包含 ( 与 ) 的括号序列,请删除尽量少的括号,使它变成平衡的。平衡的定义如下: 空序列是平衡的;如果某个括号序列 s 是平衡的,那么 (s) 也是平衡的;如果某两个括号序列 s 与 t 都是平…

webpack 常用插件

clean-webpack-plugin 这个插件的主要作用是清除构建目录中的旧文件,以确保每次构建时都能得到一个干净的环境。 var { CleanWebpackPlugin } require("clean-webpack-plugin") const path require("path");module.exports {mode: "de…

mysql binlog入门

binlog 什么是binlog binlg记录了所有的表结构变更(CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…),以事件形式记录,还包含语句所执行的消耗的时间。 简单的说就是,只要对…

手写数字识别:基于决策树算法,KNN算法,支持向量机(SVM)算法与卷积神经网络(CNN)算法

对于手写数字识别任务,我们可以使用不同的机器学习算法来实现,包括决策树、K最近邻(KNN)、支持向量机(SVM)和卷积神经网络(CNN)。下面我将为你提供每种算法的基本代码示例。 决策树…

STM32CubeMX+MDK通过I2S接口进行音频输入输出(全双工读写一个DMA回调)续-音质问题解决总结

一、前言 之前进行了STM32CubeMXMDK通过I2S接口进行音频输入输出(全双工读写一个DMA回调)的研究总结: https://juejin.cn/post/7339016190612881408#heading-34 后续音质问题解决了,目前测试下来48khz的双声道使用效果很好&…

【进程通信】Syetem V 共享内存(结合代码模拟通信)

文章目录 前言共享内存的原理创建共享内存区域key和shmget返回值的区别参数shmflag参数key共享内存数据结构用指令查询共享内存 连接共享内存分离共享内存删除共享内存用共享内存模拟Server与Client的通信Shm.hppNamePipe.hppServer.cppClient.cpp 总结 前言 进程之间除了使用…