Netty
文章平均质量分 87
Java网络开发-Netty
冰点契约丶
西安互联网付费就业,Java开发,软件测试开发线上线下辅导 欢迎有需要的朋友咨询。
展开
-
Netty实战与调优
提供两个实现,我这里直接将实现加入了枚举类 Serializer.Algorithm 中。为了支持更多序列化算法,抽象一个 Serializer 接口。序列化,反序列化主要用在消息正文的转换上。增加配置类和配置文件。原创 2023-04-13 00:10:52 · 865 阅读 · 0 评论 -
Netty应用篇
协议组成要素魔数,用来在第一时间判定是否是无效数据包版本号,可以支持协议的升级序列化算法,消息正文到底采用哪种序列化反序列化方式,可以由此扩展,例如:json、protobuf、hessian、jdk指令类型,是登录、注册、单聊、群聊… 跟业务相关请求序号,为了双工通信,提供异步能力正文长度消息正文编码器与解码器// 1. 4 字节的魔数 out . writeBytes(new byte [ ] {// 2. 1 字节的版本, out . writeByte(1);原创 2023-04-09 03:24:59 · 408 阅读 · 0 评论 -
Netty组件Future、Promise、Handler、Pipline、ByteBuf
Netty组件原创 2023-04-06 01:50:31 · 460 阅读 · 0 评论 -
Netty组件
Bootstrap的group()方法可以传入两个EventLoopGroup参数,参数1为,参数2为,单个参数的方法会为Boss与Worker创建相同的EventGroup//单参方法 return this . group(group , group);//双参方法 super . group(parentGroup);= null) {} else {} }当有的任务需要较长的时间处理时,可以使用非NioEventLoopGroup。原创 2023-04-02 16:19:32 · 356 阅读 · 0 评论 -
Netty入门
Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端netty的异步还是基于多路复用的,并没有实现真正意义上的异步IO。原创 2023-04-01 12:33:09 · 181 阅读 · 0 评论 -
NIO-网络编程
当选择器中的通道对应的事件发生后,selecionKey会被放到另一个集合中,但是selecionKey不会自动移除,所以需要我们在处理完一个事件后,通过迭代器手动移除其中的selecionKey。这样写存在一个问题,因为设置为了非阻塞,会一直执行while(true)中的代码,CPU一直处于忙碌状态,会使得性能变低,所以实际情况中不使用这种方法处理请求。不处理消息边界存在的问题:将缓冲区的大小设置为4个字节,发送2个汉字(你好),通过decode解码并打印时,会出现乱码。原创 2023-03-28 17:38:12 · 228 阅读 · 0 评论 -
ByteBuffer
粘包是指数据在传输时,在一条消息中读取到了另一条消息的部分数据,这种现象称为粘包。半包问题是指接收端只收到了部分数据,而非完整的数据就叫做半包。比如发送了一条消息是"ABC",而接收端却收到的是“AB”和"C"两条消息,这种情况叫半包。原创 2023-03-28 17:32:44 · 272 阅读 · 0 评论 -
NIO与BIO
使用transferTo方法可以快速、高效的将一个channel中的数据传输到另一个channel中,但是一次只能传输2g的内容。因为channel也是有大小的,所以 write 方法并不能保证一次将 buffer 中的内容全部写入 channel。操作系统出于性能的考虑,会将数据缓存,不是立刻写入磁盘,而是等到缓存满了以后将所有数据一次性的写入磁盘。read方法的返回值表示读到了多少字节,若读到了文件末尾则返回-1。当传输的文件大于2G时,需要通过以下方法进行多次传输。FileChannel只能在。原创 2023-03-28 17:29:26 · 206 阅读 · 0 评论 -
NIO-文件编程
使用transferTo方法可以快速、高效的将一个channel中的数据传输到另一个channel中,但是一次只能传输2g的内容。因为channel也是有大小的,所以 write 方法并不能保证一次将 buffer 中的内容全部写入 channel。操作系统出于性能的考虑,会将数据缓存,不是立刻写入磁盘,而是等到缓存满了以后将所有数据一次性的写入磁盘。read方法的返回值表示读到了多少字节,若读到了文件末尾则返回-1。当传输的文件大于2G时,需要通过以下方法进行多次传输。FileChannel只能在。原创 2023-03-24 11:02:18 · 206 阅读 · 0 评论 -
NIO简介
selector的作用就是配合一个线程来管理多个channel,获取这些channel上发生的事件,这些channel工作在非阻塞模式下,不会让线程吊死在一个channel上。,可以从channel将数据读入buffer,也可以将buffer的数据写入channel,而之间文件操作使用的stream要么是输入,要么是输出,channel比stream更为底层。与cpu有直接关系,cpu线程数表示当前可并行的线程数量,唤醒状态的线程失去cpu时间片段后需要保存当前的线程执行信息(例如指令执行到哪一行等)原创 2023-03-22 17:00:39 · 277 阅读 · 0 评论