Java基础之《netty(22)—netty编码解码机制》

news2024/11/23 12:27:24

一、编码和解码的基本介绍

1、编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发数据时就需要编码,接收数据时就需要解码

2、codec(编解码器)的组成部分有两个:decoder(解码器)和encoder(编码器)。encoder负责把业务数据转换成字节码数据,decoder负责把字节码数据转换成业务数据

二、netty本身的编码解码的机制和问题分析

1、netty自身提供了一些codec(编解码器)

2、netty提供的编码器
StringEncoder:对字符串数据进行编码
ObjectEncoder:对Java对象进行编码

3、netty提供的解码器
StringDecoder:对字符串数据进行解码
ObjectDecoder:对Java对象进行解码

4、netty本身自带的ObjectDecoder和ObjectEncoder可以用来实现POJO对象或各种业务对象的编码和解码,底层使用的仍是Java序列化技术,而Java序列化技术本身效率就不高,存在如下问题
(1)无法跨语言,客户端是Java写的,要求服务器端也要用Java,用Python就不可以
(2)序列化后的体积太大,是二进制编码的5倍多
(3)序列化性能太低

5、新的解决方案Google的Protobuf
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看小红书排行榜,解构热点背后的出圈密码

导语: 随着消费升级,新中式茶饮也悄然“起风了”,传统茶从老一辈人的茶杯里,通过创新再造,成为年轻人的社交“新”头好,其衍生的“围炉煮茶”更成为小红书平台的热门话题。高流量曝光之路背后,…

一个精美的登录界面原来是这样做的

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 玩归玩闹归闹,别拿java开玩笑 —————————————————— ⭐相关文章⭐ -通过窗口看…

隐形纱窗行业市场经营管理及发展趋势研究分析

2023-2029年中国隐形纱窗行业市场经营管理及发展趋势研究报告报告编号:1690619本报告著作权归博研咨询所有,未经书面许可,任何组织和个人不得以任何形式复制、传播或输出中华人民共和国境外。任何未经授权使用本报告的相关商业行为都将违反《…

【操作系统】计算机内存管理

1.内存管理目标rom-ram (1)为啥要做内存管理 计算机不可能所以用户进程和系统所需要的全部程序和数据放入主存,所以操作系统必须对内存空间进行合理有效的分配内存管理功能 内存分配回收:主存储器(物理内存&#xff…

UOS系统启动盘制作

UOS系统启动盘制作一、统信启动盘制作工具1、UOS系统1)在启动器打开启动盘制作工具![在这里插入图片描述](https://img-blog.csdnimg.cn/d51bf22e25a846cdb99f7f6317e9447f.png)2)选择镜像3)选择优盘并格式化4)开始制作5&#xff…

第06章 面向对象编程(基础部分oop)

1、单独用变量来解决:不利于数据的管理, 把猫的三个属性拆开了。 2、使用数组的方式解决: 数据类型体现不出来,由于数组中的类型是一致的,所有不能体现出不同的数据类型。 只能通过下标的方式获取信息,这样会造成变量…

sql练习题3

学生表练习 1、查询所有的课程的名称以及对应的任课老师姓名 select course.cname,teacher.tname from course inner join teacher on course.teacher_id teacher.tid;2、查询学生表中男女生各有多少人 select gender as 性别,count(gender) as 个数 from student group b…

Java面向对象:封装、JavaBean和综合案例

目录封装基本概念总结如何更好的封装总结JavaBean补充知识:成员变量,局部变量区别综合案例封装 面向对象的三大特征:封装,继承,多态。 封装:告诉我们,如何正确设计对象的属性和方法。 封装的原则:对象代表什么&#x…

Java学习笔记 --- JDBC(2)

一、事务 1、JDBC程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而不能回滚。 2、JDBC程序中为了让多个SQL语句作为一个整体执行&#xff0…

人工智能算法--启发式搜索与估值函数

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪 (*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &a…

Linux--阻塞信号--信号集--0104 05

1. 阻塞信号 1.1 信号其他相关常见概念 实际执行信号的处理过程称为信号递达。信号从产生到递达之间的状态称为信号未决。进程可以选择阻塞(Block)某个信号。被阻塞的信号保持在未决状态,直至进程解除对该信号的阻塞,才执行递达…

Qt—事件处理

Qt中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。Qt中,任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent(&#xff0…

百度语音+自动驾驶感知+深度学习平台技术解析

HIEV快讯(文/戒僧)本文将解析三部分技术内容,出自百度2023 Create大会-技术开放日: •百度如何用“手机全双工语音交互”改善使用导航应用的体验 •如何用“上帝视角”BEV技术提升汽车的自动驾驶能力 •如何用百度自研的深度学习平…

k8s常见错误

master节点初始化失败 出现这个原因是因为,我们之前有执行过初始化的命令,然后初始化的时候就会产生一些文件,和占用端口,然后当你再次初始化的时候,就会提示你有些文件已经存在和端口正在被使用,所以我们…

年末高压叠加“阳”后虚弱,双重压力下的测试者们该何去何从

在2022年的最后一个月,国家放开管控,发布“新十条”,不查核酸,不看健康码,以前闻之色变的“小阳人”,十几天后,遍地皆是。 相信大家对这段时间的经历难以忘怀,在刚放开的时候&#x…

【论文阅读笔记】EndoL2H: Deep Super-Resolution for Capsule Endoscopy

论文地址:https://arxiv.org/abs/2002.05459 代码地址:https://github.com/CapsuleEndoscope/EndoL2H 论文小结 顾名思义,本文是胶囊内窥镜领域的超分算法。本文的网络结构是条件对抗网络 空间attention块的方式,实现8倍、10倍和…

不要再被骗了,解密短视频里追剧看电影都能赚钱的坑。

不要再被骗了,解密短视频里追剧看电影都能赚钱的坑。 最近刷短视频刷到了好多抖音追剧看电影每天收几百,还有截图,还有怎么实操的视频。 关键不是刷到一个两个,是几十个还有越来越多的趋势。 都说新入门实操,终于忍不住&#x…

LeetCode刷题Day05——链表(链表元素删除、相交、环形链表)

文章目录一、删除链表中的倒数第n个节点二、链表相交三、环形链表一、删除链表中的倒数第n个节点 题目链接&#xff1a;19.删除链表中的倒数第n个节点 /*** <pre>* 最简单的方法显然是先遍历一遍链表&#xff0c;知道长度后重新遍历一次就可以找到指定节点了&#xff0…

WebDAV之葫芦儿·派盘+DAVx⁵

DAVx⁵ 支持WebDAV方式连接葫芦儿派盘。 支持移动设备远程同步,是不是比NAS更便捷?并且这款软件最为关键的还是支持各种协议,让你能够在跨平台上面同步安卓和苹果上面的内容,你可以在服务器上面进行一些简单的内容管理,快来试试DAVx⁵与派盘的最佳组合吧。 DAVx⁵是一款…

LeetCode:18. 四数之和

18. 四数之和1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &…