美文网首页《Netty实战》(《Netty in Action》)笔记
《Netty实战》读书笔记01——第一章

《Netty实战》读书笔记01——第一章

作者: 要记录的Ivan | 来源:发表于2019-04-22 14:25 被阅读0次

    第 1 章 笔记

    Java 网络编程

    早期Java的网络编程,需要学习很多C语言套接字(Socket)的知识,但是在创建一个C/S(客户端/服务器)应用的时候有大量重复性的工作。早期Java API仅支持本地系统套接字库提供的阻塞函数,需要为每一个客户端Socket创建一个新的线程管理,这样在用户量超过10000的时候,就难以为继了。

    JDK1.4以后引入了NIO包,即非阻塞IO。NIO利用选择器(Selector)实现了一个线程可以管理多个Socket,这种模型更好地进行了资源管理:

    • 减少了线程使用的数量,因而减少了内存管理和上下文切换所带来的开销;
    • 将线程从IO阻塞的过程中释放出来,使得在没有IO处理的时候,线程可以处理其他任务。

    有关于Java NIO的详细讲解可以看这儿

    Netty简介

    Netty是Java在网络编程领域一种卓越的框架,在设计、易用性、性能、健壮性、安全性和社区驱动等方面具有诸多优势,其特点可以概括为:

    • 异步性
    • 事件驱动

    Netty使用非阻塞IO来处理大量事件,为这些事件提供通知,并使得它们可以被处理。

    Netty核心组件

    主要分为:

    • Channel
    • 回调
    • Future
    • 事件和ChannelHandler

    Channel

    表示通道,即传入或传出数据的载体,可以被打开或者关闭,连接或断开连接。

    回调

    要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数

    Future

    提供一种在操作完成的时候通知应用程序的方式,可以被看作一个异步操作的结果占位符,表示将在未来某个时刻完成,并提供对其结果的访问。

    事件和ChannelHandler

    如下图,每个事件都可以被分发给ChannelHandler类的某个用户实现的方法,将事件驱动范式直接转换为应用程序构件块。

    相关文章

      网友评论

        本文标题:《Netty实战》读书笔记01——第一章

        本文链接:https://www.haomeiwen.com/subject/dkmygqtx.html