netty学习笔记(四)观闪电侠小册netty总结

863 阅读1分钟

前言

  大二的时候买了一个某团大佬的netty掘金小册,看了一遍懵懵懂懂,当看完netty in action书籍之后,再次回味细品,还有很多值得学习的地方。

1.Nio概念

在这里插入图片描述   可以看到由一个io线程来负责多个socket的请求情况管理,这里是selector。其中有两个,一个负责接客,一个负责服务请求。

个人总结 客户端连接服务端需要用channel才能发送消息,channelFuture再获取channel是发送不了的

在这里插入图片描述

2.boostrap

  这个是连接的相关配置。 在这里插入图片描述

在这里插入图片描述

对channel进行相关参数配置以及netty配置

3.客户端连接失败重试

在这里插入图片描述 就是添加监听器,如果失败重新连接。

4.ButeBuf

在这里插入图片描述 read,write会对索引进行偏移,如果读取不到会抛出异常。

在这里插入图片描述

5.ChannelPipeline

在这里插入图片描述

6.编码解码

在这里插入图片描述

ByteBuf是堆外内存,所以调用之后需要release.注意图片中画红框部分。

6.1粘包拆包

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

7.可拔插链路

在这里插入图片描述

@Sharble

在这里插入图片描述

ctx.writeAndFlush跟ctx.channel.writeAndFlush区别

在这里插入图片描述

8.避免阻塞Nio里面channel

我们知道nio里面通过一个io线程来处理数据,如果阻塞了对其他线程的影响蛮大的。 在这里插入图片描述

9.多人直播间实现

小册中实现的多人聊天是使用channelGroup去实现的,如果是分布式环境就得重新写了。直播间号跟用户id使用map来保存,这些相对比较简单。