![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
胡晗-
不定期更新
展开
-
4.Netty服务端源码分析
Netty线程模型图源码执行过程流程图图片链接:https://www.processon.com/view/link/5fc6f349e401fd0eb98da1e1Netty服务端代码// 管理连接线程组EventLoopGroup bossGroup = new NioEventLoopGroup(1);// 处理io任务线程组EventLoopGroup workerGroup = new NioEventLoopGroup();try {...原创 2020-12-07 23:17:25 · 99 阅读 · 0 评论 -
3.Netty编解码和粘包拆包
1.Netty组件ChannelHandlerChannelHandler充当了处理读写数据的应用程序逻辑容器,管理读写数据的生命周期。例如,实现ChannelInboundHandler接口(或ChannelInboundHandlerAdapter),你就可以接收read事件和数据,这些数据随后会被你的应用程序的业务逻辑处理。当你要给连接的客户端发送响应时,也可以从ChannelInboundHandler冲刷数据。你的业务逻辑通常写在一个或者多个ChannelInboundHand..原创 2020-11-30 17:04:02 · 149 阅读 · 0 评论 -
2.Netty入门
简介NIO 的类库和 API 繁杂, 使用麻烦: 需要熟练掌握Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等。开发工作量和难度都非常大: 例如客户端面临断线重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处理等等。Netty 对 JDK 自带的 NIO 的 API 进行了良好的封装,解决了上述问题。且Netty拥有高性能、 吞吐量更高,延迟更低,减少资源消耗,最小化不必要的内存复制等优点。使用场景1)互联.原创 2020-11-26 00:13:36 · 81 阅读 · 0 评论 -
1.BIO、NIO和AIO
BIO(Blocking IO)同步阻塞模型,一个客户端连接对应一个处理线程缺点:1、IO代码里read操作是阻塞操作,如果连接不做数据读写操作会导致线程阻塞,浪费资源2、如果线程很多,会导致服务器线程太多,压力太大。应用场景:BIO 方式适用于连接数目比较小且固定的架构, 这种方式对服务器资源要求比较高,但程序简单易理解。NIO(Non Blocking IO)同步非阻塞,服务器实现模式为一个线程可以处理多个请求(连接),客户端发送的连接请求都会注册到多路复用器..原创 2020-11-26 00:07:39 · 106 阅读 · 0 评论 -
Netty java.lang.IndexOutOfBoundsException: srcIndex: 0异常错误
在用netty框架做采集程序时,控制台有时会输出 WARNio.netty.channel.AbstractChannelHandlerContext-Failed to mark a promise as failure because it has failed already: DefaultChannelPromise@630e0515(failure: java.lang.IndexOutOfBoundsException: srcIndex: 0), unnotified cause: ...转载 2020-11-25 16:12:22 · 2164 阅读 · 0 评论