自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Netty客户端创建

1、Netty客户端创建时序图2、Netty客户端创建流程分析步骤1:用户线程创建Bootstrap实例,通过API设置创建客户端相关的参数,异步发起客户端连接;步骤2:创建处理客户端连接、I/O读写的Reactor线程组NioEventLoopGroup。可以通过构造函数指定I/O线程的个数,默认为CPU内核数的2倍;步骤3:通过Bootstrap的ChannelFac...

2019-02-28 10:48:39 1398

原创 Netty服务端创建

1、Netty服务端创建时序图分步详细说明:1)创建ServerBootstrap实例。ServerBootstrap是Netty服务端的启动辅助类,她提供了一系列的方法用于设置服务端启动相关的参数。2)设置并绑定Reactor线程池。Netty的Reactor线程池是 EventLoopGroup,它实际上是EventLoop的数组。Eventloop的职责是处理所有注册到本线程...

2019-02-28 10:20:36 1345 1

原创 ByteBuf和相关辅助类

1、ByteBuf功能说明ByteBuffer的缺点     1)ByteBuffer长度固定,一旦分配完成,它的容量不能动态扩展和收缩,当需要编码的POJO对象大于ByteBuf的容量时,会发生索引越界异常   2)ByteBuffer只有一个标志位置的指针position,读写的时候需要手工平调用flip()和rewind()等,使用者必须小心谨慎地处理这些API,否则容易导致程序...

2019-02-27 16:03:39 449

原创 Future和Promise

1、Future功能Future最早来源于java.util.concurrent.Future,用于代表异步操作的结果。可以通过get方法获取操作结果,如果操作尚未完成,则会同步阻塞当前调用的线程;如果不允许阻塞太长时间或者无限期阻塞,可以通过带超时时间的get获取结果;如果达到超时时间你操作仍然没有完成,则抛出TimeoutException。可以通过isDone方法可以判断当前的...

2019-02-27 14:55:58 849

原创 EventLoop和EventLoopGroup

1、Netty的线程模型Reactor单线程模型指所有的I/O操作都在同一个NIO线程上面完成。NIO线程的职责如下:①作为NIO服务端,接受客户端的TCP链接②作为NIO客户端,向服务端发起TCP连接③读取通信对端的请求或者应答消息④向通信对端发送消息请求或者应答消息不适用高负载、大并发的场景:①一个NIO线程同时处理成百上千的链路,性能上无法支撑,即便NIO线程的CPU符合导到...

2019-02-27 11:39:10 619

原创 ChannelPipeline和ChannelHandler

Channel过滤器实现原理与Servlet filter机制一致,它将Channel的数据管道抽象为ChannelPipeline,消息在ChannelPipeline中流动和传递。ChannelPipeline持有I/O事件拦截器ChannelHandler的链表,由ChannelHandler对I/O事件进行拦截和处理,可以方便的通过新增和删除ChannelHandler来实现不同的业务逻辑...

2019-02-27 11:19:59 390

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除