Netty学习
文章平均质量分 87
Netty学习
郭艺宾
富有激情的学习Java
展开
-
Netty快速入门(10)Reactor与Netty
Reactor模式Reactor是1995年由道格拉斯提出的一种高性能网络编程模式。由于好多年了,当时的一些概念与现在略有不同,reactor模式在网络编程中是非常重要的,可以说是NIO框架的典型模式,一些经典的框架,比如Mina、Netty、Cindy都是此模式的实现。我们来看看当年提出的通用模型:上面的图形中:1、Handle 可以理解为资源或者文件句柄,放在netty里面就是c...原创 2020-01-13 17:52:40 · 1189 阅读 · 0 评论 -
Netty快速入门(09)channel组件介绍
书接上回,继续介绍组件。ChannelHandler组件介绍ChannelHandler组件包含了业务处理核心逻辑,是由用户自定义的内容,开发人员百分之九十的代码都是ChannelHandler。Netty提供2个重要的 ChannelHandler 子接口,用来自定义ChannelHandler:ChannelInboundHandler - 处理进站数据和所有状态更改事件(进...原创 2020-01-13 17:46:11 · 1227 阅读 · 0 评论 -
Netty快速入门(08)ByteBuf组件介绍
前面的内容对netty进行了介绍,写了一个入门例子。作为一个netty的使用者,我们关注更多的还是业务代码。也就是netty中这两种组件:ChannelHandler和ChannelPipeline---对应于NIO中的客户逻辑实现handleRead/handleWrite(interceptor pattern)ByteBuf---- 对应于NIO 中的ByteBuffer我们的...原创 2020-01-13 17:17:10 · 971 阅读 · 0 评论 -
Netty快速入门(07)Netty入门例子
回顾NIO编程在正式学习netty之前,我们先来回顾一下NIO编程。NIO代码是比较麻烦和复杂的,大家可以考虑一下,如果让我们自己封装NIO,哪些角度和部分是需要考虑的?如何简化编程?我们使用NIO的时候,服务端的编程流程可以大致总结如下:1、创建Selector2、创建ServerSocketChannel,注册到Selector上,并关注Accept事件3、获取就绪的channe...原创 2020-01-13 17:05:54 · 1036 阅读 · 1 评论 -
Netty快速入门(06)Netty介绍
前面简单的介绍了Java I/O 和NIO,写了示例程序。Java I/O是阻塞的,为了让它支持多个并发,就要针对每个链接启动线程,这种方式的结果就是在海量链接的情况下,会创建海量的线程,就算用线程池去缓解,也是治标不治本。所以,Java I/O 不适合高并发高性能的网络编程需求。NIO的出现就是为了解决这个问题,NIO中一个线程可以关注多个链接,解决了线程问题,前面也演示了如何用NIO编程。...原创 2020-01-13 17:00:39 · 866 阅读 · 0 评论 -
Netty快速入门(05)Java NIO 介绍-Selector
Java NIO SelectorSelector是Java NIO中的一个组件,用于检查一个或多个NIO Channel的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。前面说过通道就是连接,比如同一时间有很多连接过来,这些连接,也就是channel都会注册到Selector中,Selector就会巡视这些channel,看看哪些可以操作...原创 2020-01-13 16:01:52 · 338 阅读 · 0 评论 -
Netty快速入门(04)Java NIO 介绍-Channel
Channel(通道)介绍所有的 NIO 操作始于通道,通道是数据来源或数据写入的目的地,主要地,java.nio 包中主要实现的以下几个Channel:FileChannel:文件通道,用于文件的读和写DatagramChannel:用于 UDP 连接的接收和发送SocketChannel:把它理解为 TCP 连接通道,简单理解就是TCP 客户端ServerSocketCha...原创 2020-01-13 15:55:52 · 859 阅读 · 0 评论 -
Netty快速入门(03)Java NIO 介绍-Buffer
NIO 介绍NIO,可以说是New IO,也可以说是non-blocking IO,具体怎么解释都可以。NIO 1是在JSR51里面定义的,在JDK1.4中引入,因为BolckingIO不支持高并发网络编程,这也是Java1.4以前被人诟病的原因。NIO 2是在JSR203中定义的,在JDK1.7中引入,这是JavaNIO整个的发展历程。NIO 1和NIO 2并不是一个新旧替代的关系,而是一...原创 2020-01-13 15:50:52 · 927 阅读 · 0 评论 -
Netty快速入门(02)Java I/O(BIO)介绍
BIO简介Java I/O,也叫Blocking I/O,也就是阻塞式I/O。BIO的流程比较简单,在服务端创立一个ServerSocket去监听,等待连接。客户端创建一个Socket连接过来,服务器端就能接收到连接请求,建立一个连接。连接建立起来后,服务端和客户端就能通过一个流式API进行一个数据通信,进行一些读写操作。单线程BIO示例来看一个BIO的例子,服务端创...原创 2020-01-13 14:46:52 · 334 阅读 · 0 评论 -
Netty快速入门(01)Linux I/O模型介绍
Netty简述*Netty是一个高性能的网络编程框架。*上面提到了几个关键的字眼,高性能,网络编程,框架。这些概括Netty的本质。Netty是一个NIO客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。“快速简便”并不意味着最终的应用程序会受到可维护性或性能问题的影响。Netty经过精心设计,具有丰富...原创 2020-01-13 10:53:38 · 963 阅读 · 0 评论