《Netty实战》(《Netty in Action》)笔记

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

2019-04-22  本文已影响0人  要记录的Ivan

第 1 章 笔记

Java 网络编程

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

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

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

Netty简介

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

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

Netty核心组件

主要分为:

Channel

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

回调

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

Future

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

事件和ChannelHandler

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

上一篇下一篇

猜你喜欢

热点阅读