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

前言

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

1.Nio概念

netty学习笔记(四)观闪电侠小册netty总结
  可以看到由一个io线程来负责多个socket的请求情况管理,这里是selector。其中有两个,一个负责接客,一个负责服务请求。

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

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

2.boostrap

  这个是连接的相关配置。
netty学习笔记(四)观闪电侠小册netty总结

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

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

3.客户端连接失败重试

netty学习笔记(四)观闪电侠小册netty总结
就是添加监听器,如果失败重新连接。

4.ButeBuf

netty学习笔记(四)观闪电侠小册netty总结
read,write会对索引进行偏移,如果读取不到会抛出异常。

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

5.ChannelPipeline

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

6.编码解码

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

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

6.1粘包拆包

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

7.可拔插链路

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

@Sharble

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

ctx.writeAndFlush跟ctx.channel.writeAndFlush区别

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

8.避免阻塞Nio里面channel

我们知道nio里面通过一个io线程来处理数据,如果阻塞了对其他线程的影响蛮大的。
netty学习笔记(四)观闪电侠小册netty总结

9.多人直播间实现

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