Netty
Lincain
这个作者很懒,什么都没留下…
展开
-
Netty学习笔记(一)--- 初识Netty
什么是Netty如果在网络上搜索它,你可以在官网上看到如下内容:Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.简单说,Netty...原创 2019-05-06 21:00:45 · 493 阅读 · 0 评论 -
Netty学习笔记(二)--- Bootstrapping
在上一篇文章的Echo应用程序案例中,我们可以发现服务端和客服端都有一段引导代码。什么是引导呢,顾名思义,它就像一个调度员,将本来独立的各个组件引导到合适的位置,从而使整个系统能有序协调的运行。**引导(Bootstrapping)**是Netty对应用程序进行配置的过程,我们需要通过它来连接客户端和将服务端绑定到指定的端口上。它有两种类型:一种是用于服务端的ServerBootstrop,一种...原创 2019-05-14 14:13:42 · 911 阅读 · 0 评论 -
Netty学习笔记(三)--- 线程模型和EventLoopGroup
Netty之所以成为高性能NIO框架,其精心设计的高效线程模型功不可没,Netty线程模型基于了一个著名的模式——Reactor模式。Reactor模型Reactor模型是一种经典的线程模型,也叫反应器模型,网上已经由很多对它的介绍,这里就不过多的介绍,只是简单介绍三种模型的特点。单线程模型Reactor单线程模型仅使用一个线程来处理所有的事情,包括服务端和客户端的连接,以及连接产生的的...原创 2019-05-15 16:20:16 · 418 阅读 · 0 评论 -
Netty学习笔记(六)--- ByteBuf
所有的网络通讯都涉及到数据的交互,数据的交互本质上就是字节序列的移动。为了实现网络通信的高效性,我们通常需要一个缓冲区来存储这些字节序列。在NIO中我们使用ByteBuffer作为它的字节容器,但是这个类的方法使用起来过于复杂,在日常的编程工作中显得有些繁琐。Netty为此提供了一款替代ByteBuffer的的组件:ByteBuf,它既解决了 JDK API 的局限性,又为网络应用程序的开发者提...原创 2019-05-26 11:11:31 · 705 阅读 · 0 评论 -
Netty学习笔记(四)--- ChannelHandler
在前面的文章中,通过对引导和线程的介绍,我们知道了如何配置、引导客户端和服务端程序,以及程序的线程模型。它们构建了应用程序运行的框架,但一个完整的网络应用程序还需要更多的内容,其中包括数据应该如何处理。Netty为此提供了一个强大功能组件ChannelHanlder接口,它允许用户自定义ChannelHandler的实现来处理传入和传出的数据。在一款网络应用程序中,数据应该是其中最重要的部分,其...原创 2019-05-22 14:34:35 · 719 阅读 · 0 评论 -
Netty学习笔记(五)--- ChannelHandler的执行顺序
在上一篇文章中,我们已经对ChannelHandler的执行顺序进行了介绍,一个I/O事件可以通过ChannelHandlerContext中的事件传播方法(如 ChannelHandlerContext.fireChannelRead(Object) 和ChannelHandlerContext.write(Object))传递到下一个类型相同的ChannelHandler上。下图取自Nett...原创 2019-05-23 17:41:42 · 2044 阅读 · 0 评论 -
Netty学习笔记(七)--- Codec框架
我们知道,在网络中数据都是以字节码的形式来进行传输的,每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节码,以及如何将其和目标应用程序的数据格式做相互转换。编解码器就是用来处理这种逻辑的,它由编码器和解码器两个组件组成,其中编码器负责将消息转换为适合传输的格式,解码器则负责将网络字节流转换回应用程序的消息格式。Netty提供了编解码器框架,使得编写自定义的编解码器很容易,并且也很...原创 2019-05-28 10:02:18 · 691 阅读 · 0 评论