public boolean connect() {try {ChannelFuture channelFuture1 = bootstrap.connect("127.0.0.1", 8088);ChannelFuture channelFuture2 = bootstrap.connect("127.0.0.1", 8088);ChannelFuture channelFuture3 = bootstrap.connect("127.0.0.1", 8088);} catch (Exception e) {exceptionHandler(e);}clientChannel.close();return false;}3.如果netty客户端线程数设置大于1有什么影响么?
明显的异常肯定是不会有的,但是造成资源浪费,首先会创建多个NioEventLoop对象,但NioEventLoop是处于非运行状态 。一旦出现断线重连,那么重新连接时,下一个NioEventLoop则会被选中,并创建/启动线程一直处于runnable状态 。而上一个NioEventLoop也是一直处于runnable状态,由于上一个Channel已经被close,所以会造成每次select结果都是空的,没有意义的空轮询 。
如下则是netty客户端使用默认线程数,4次断线重连后一共创建的5条NioEventLoop线程,但是实际上只有第5条线程在执行读写操作 。

文章插图

文章插图
4.如果客户端存在耗时的业务逻辑,应该单独使用业务线程池,避免在netty的io线程中执行耗时逻辑处理 。
总结本篇主要讲解了,netty断线重连的两种实现方案,以及实现过程中遇到的异常问题,通过分析问题,让大家了解netty的实现细节 。
来源:blog.csdn.net/u013202238/article/details/111680798
推荐阅读
- 记一次 Netty 堆外内存泄露排查过程
- netty系列之:性能为王!创建多路复用http2服务器
- 阿里架构师整理的 Netty 学习笔记之:Java NIO 网络编程
- Socket代理神器客户端Proxifier+服务端ss5
- MySQL for macOS如何调出命令行客户端MySQL Command Line Client
- 客户端宕机恢复后想要再建立TCP链接,服务端会如何处理?
- Winserver2019上配置dhcp服务 客户端保留地址
- PPPOE拨号上网服务器端与客户端的完整配置
- 如何用Netty写一个高性能的分布式服务框架?
- 简单易懂 UDP实现客户端通信
