10.Netty之ByteBuf介绍(二)

[TOC]一、ByteBuf组成ByteBuf由四部分组成说明ByteBuf 是一个字节容器,容器里面的的数据分为四个部分第一个部分是已经丢弃的字节,这部分数据是无效的;(已经读过的内容)第二部分是可读字节,这部分数据是 ByteBuf 的主体数据, 从 ByteBuf 里面读取的数据都来自这一部分;(已经写入但还未读取的内容)第三部分数据是可写字节,所有写到 ByteBuf 的数据都会写到...

Java 2022-06-12 AM 836次 0条

09.Netty之ByteBuf介绍(一)

[TOC]一、概述ByteBuf是对NIO中ByteBuffer的增强。相比于ByteBuffer,Netty 的 ByteBuf 具有卓越的功能性和灵活性。ByteBuf API 的优点可以被用户自定义的缓冲区类型扩展通过内置的复合缓冲区类型实现透明的零拷贝容量可以按需增长在读和写这两种模式之间切换不需要调用 ByteBuffer 的 flip() 方法在读和写使用了不同的索引支持方法的链...

Java 2022-06-11 PM 986次 0条

08.Netty之Handler与Pipeline

[TOC]一、概述ChannelHandler 用来处理 Channel 上的各种事件,分为入站、出站两种。所有 ChannelHandler 被连成一串,就是 Pipeline入站处理器通常是 ChannelInboundHandlerAdapter 的子类,主要用来读取客户端数据,写回结果;出站处理器通常是 ChannelOutboundHandlerAdapter 的子类,主要对写回结...

Java 2022-06-10 PM 715次 0条

07.Netty之Future与Promise

[TOC]一、概述Future与Promise在异步处理时,经常用到这两个接口首先要说明 netty 中的 Future 与 jdk 中的 Future 同名,但是是两个接口,netty 的 Future 继承自 jdk 的 Future,而 Promise 又对 netty Future 进行了扩展。jdk Future:只能同步等待任务结束(或成功、或失败)才能得到结果;netty Fu...

Java 2022-06-10 PM 757次 0条

06.Netty组件Channel介绍

[TOC]一、概述1.1 概念Channel是客户端和服务端建立的一个连接通道,是Netty抽象出来的网络I/O读写相关的接口。客户端有一个Channel(SocketChannel),服务端也有一个Channel(NioSocketChannel),当客户端和服务端建立连接后,客户端的Channel会跟服务端的Channel进行联通。1.2 Channel生命周期Channel的四个状态:...

Java 2022-06-09 PM 897次 0条

05.Netty组件EventLoop使用

[TOC]一、概述1.1 EventLoopEventLoop(事件循环对象) 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。它的继承关系比较复杂一条线是继承自 j.u.c.ScheduledExecutorService 因此包含了线程池中所有的方法另一条线是继承自 netty 自己的 OrderedEven...

Java 2022-06-08 PM 880次 0条

【转载】04.Netty组件EventLoop介绍

[TOC]前言在本篇开始之前需要对之前文章《Netty线程模型》进行了解。本篇转载与大佬的技术文章《为什么 EventLoop 是 Netty 的精髓》简语:小编也是花了一些时间才读懂文章中的部分内容,但是对于理解EventLoop组件来说也启到了很大的作用。一、EventLoop 是什么EventLoop 这个概念其实并不是 Netty 独有的,它是一种事件等待和处理的程序模型,可以解决多...

Java 2022-06-08 PM 798次 0条

03.Netty入门Demo

[TOC]一、目标开发一个简单的服务器端和客户端客户端向服务器端发送 hello, world服务器仅接收,不返回引入依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1...

Java 2022-06-07 PM 770次 0条

【转载】02.Netty线程模型

[TOC]前言接着我们学习一下 Netty 的线程模型,了解了 Netty 的线程模型之后我们对 Netty 的整体架构也就有了一个大致的了解。由于 Netty 的线程模型是基于 Reactor 模型改进而来的,因此先讲讲 Reactor 模型,有助于我们对 Netty 线程模型的理解 。一、Reactor 模型Reactor 模型是指当服务器接收到多个请求时,服务器程序会把它们分派到不同的...

Java 2022-06-06 PM 864次 0条

01.Netty概述

[TOC]一、Netty简介​ Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。​ 也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保快速和简单的开发出一个网络应用,例如实现了某种...

Java 2022-06-06 PM 930次 0条