NIO和Netty
文章平均质量分 83
分享与记录nio和netty相关的知识与面试题
wh柒八九
一枚热爱编程的程序员
展开
-
Springboot整合netty实战
本文来简单说下Springboot如何来整合netty文章目录概述概述原创 2021-11-05 15:54:47 · 373 阅读 · 0 评论 -
什么是粘包拆包
本文来说下什么是粘包拆包文章目录概述概述原创 2021-10-30 21:08:42 · 4887 阅读 · 0 评论 -
内存映射文件mmap原理分析
本文来说下内存映射文件 mmap 原理文章目录概述概述原创 2021-10-28 17:06:28 · 284 阅读 · 0 评论 -
Netty架构与原理详解
本文来详细说下netty架构设计与原理文章目录概述概述读者在阅读本文前最好有 Java 的 IO 编程经验(知道 Java 的各种 IO 流),以及 Java 网络编程经验(用 ServerSocket 和 Socket 写过 demo),并对 Java NIO 有基本的认识(至少知道 Channel、Buffer、Selector 中的核心属性和方法,以及三者如何配合使用的),以及 JUC 编程经验(至少知道其中的 Future 异步处理机制),没有也没关系,文中多数会介绍,不影响整体的理解。.原创 2021-09-30 09:17:27 · 1890 阅读 · 0 评论 -
IO多路复用中select、poll、epoll之间的区别
本文来说下IO多路复用中select、poll、epoll之间的区别文章目录概述概述原创 2021-09-27 14:59:44 · 205 阅读 · 0 评论 -
Netty是如何实现TCP心跳机制与断线重连的
本文来说下Netty 是如何实现 TCP 心跳机制与断线重连的文章目录什么是心跳机制HeartBeat什么是心跳机制HeartBeat在 TCP 长连接 keepAlive 的应用场景下,client 端一般不会主动关闭它们之间的连接,Client 与 Server 之间的连接如果一直不关闭的话,随着客户端连接越来越多,Server 早晚有扛不住的时候,这时候 Server 端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致 Server 端服务受损所谓心.原创 2021-09-07 09:42:02 · 2844 阅读 · 0 评论 -
Netty之Bootstrap详解
本文来重点说下Bootstrap文章目录概述概述在了解 ChanelPipeline,EventLoop 等组件之后,我们需要将这些组件组织起来,使其成为一个可运行的应用程序。 这里就需要引导 Boostrap 相关组件了。原创 2021-09-06 19:38:28 · 3941 阅读 · 0 评论 -
Netty Reactor线程模型与EventLoop详解
本文来说下Netty Reactor线程模型与EventLoop文章目录EventLoop事件循环EventLoop事件循环事件循环正如它的名字,处于一个循环之中。我们以前在编写网络程序的时候,会使我们处理连接的逻辑 处于一个死循环之中,这样可以不断的处理客户端连接。下面的代码显示了典型的 EventLoop 逻辑:while (!terminated) { // 阻塞直到事件可以运行 List<Runnable> readyEvents = blockUn.原创 2021-09-06 16:39:16 · 501 阅读 · 0 评论 -
ChannelHandler 与 ChannelPipeline 详解
本文来说下netty中的核心知识ChannelHandler 与 ChannelPipeline 详解文章目录概述概述原创 2021-09-06 15:08:51 · 504 阅读 · 0 评论 -
Buffer(缓冲/字节容器)详解
本文来说下Buffer(缓冲/字节容器)详解文章目录概述概述正如我们先前所指出的,网络数据的基本单位永远是 byte(字节)。Java NIO 提供 ByteBuffer 作为字节的容器,但这个类是过于复杂,有点难以使用。Netty 中 ByteBuffer 的替代是 ByteBuf,一个强大的实现,解决 JDK 的 API 的限制,以及为网络应用程序开发者一个更好的工具。 但 ByteBuf 并不仅仅暴露操作一个字节序列的方法; 这也是专门的 Netty 的 ChannelPipeline .原创 2021-09-06 13:57:32 · 8251 阅读 · 0 评论 -
Transport(传输) 详解
本文来说下有关Transport(传输) 详解文章目录概述概述在网络中传递的数据总是具有相同的类型:字节。 这些字节流动的细节取决于网络传输,它是一个帮我们抽象底层数据传输机制的概念,我们不需要关心字节流动的细节,只需要确保字节被可靠的接收和发送。当我们使用 Java 网络编程时,可能会接触到多种不同的网络 IO 模型,如 NIO,BIO (OIO: Old IO),AIO 等,我们可能因为使用这些不同的 API 而遇到问题。 Netty 则为这些不同的 IO 模型实现了一个通用的 API,我.原创 2021-09-06 13:19:36 · 2372 阅读 · 0 评论 -
Netty核心组件总览
本文来说下Netty 核心组件文章目录核心组件概述核心组件概述下面枚举所有的 Netty 应用程序的基本构建模块(核心组件),包括客户端和服务器:Bytebuf(字节容器)Bootstrap 和 ServerBootstrap (启动引导类)Channel(网络操作抽象类)EventLoop (事件循环)ChannelHandler (消息处理器)和 ChannelPipeline (ChannelHandler 对象链表)ChannelFuture(操作执行结果)通过下.原创 2021-09-06 11:14:57 · 418 阅读 · 0 评论 -
Netty架构设计与功能特性
本文来说下Netty架构设计与功能特性文章目录Netty架构Netty架构Netty架构传输服务 支持 BIO 和 NIO容器集成 支持 OSGI、JBossMC、Spring、Guice 容器协议支持 HTTP、Protobuf、二进制、文本、WebSocket 等一系列常见协议都支持。 还支持通过实行编码解码逻辑来实现自定义协议核心:可扩展事件模型、通用通信API、支持零拷贝的 ByteBuf 缓冲对象...原创 2021-09-06 10:49:08 · 185 阅读 · 0 评论 -
第一个Netty应用
本文来说下Kafka是如何保证消息不丢失的文章目录概述概述原创 2021-09-02 21:04:47 · 238 阅读 · 0 评论 -
从BIO、NIO到Netty
本文来说下从 BIO、NIO 到 Netty的一路发展过程文章目录BIO传统的阻塞式通信流程BIO传统的阻塞式通信流程早期的Java网络相关的 API(java.net包) 使用 Socket(套接字)进行网络通信,不过只支持阻塞函数使用。...原创 2021-09-05 20:43:27 · 275 阅读 · 0 评论 -
Netty是如何解决粘包和拆包问题的
本文来说下Netty是如何解决粘包和拆包问题的文章目录概述概述在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。...原创 2021-08-21 19:31:02 · 1027 阅读 · 0 评论 -
关于reactor模型的几个问题
本文来说下关于reactor模型的几个问题文章目录概述概述原创 2021-07-24 13:15:58 · 285 阅读 · 0 评论 -
JAVA NIO基础知识
本文来说下JAVA NIO基础知识。文章目录概述概述原创 2021-07-06 20:51:34 · 208 阅读 · 1 评论 -
JAVA IO基本知识
这里来说下java io的基本知识。文章目录主要内容主要内容(1) 按操作方式分类结构图:(2)按操作对象分类结构图原创 2021-07-06 20:30:18 · 129 阅读 · 0 评论 -
网络IO演变发展过程和模型介绍
本文来说下网络 IO 演变发展过程和模型介绍文章目录概述概述原创 2021-07-04 11:25:12 · 321 阅读 · 1 评论 -
NIO的原理详解
本文来说下NIO的原理和机制文章目录概述概述原创 2021-07-03 18:00:17 · 1577 阅读 · 1 评论 -
Netty入门教程——初识Netty
Netty入门教程之初识Netty,本次会写几篇文章来详细说下netty。文章目录什么是Netty什么是NettyNetty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。 Netty是一个广泛使用的Java网络编程框架。它活跃和成长于用户社区,像大型公司 Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert.x, Apache Cassandra 和 E.原创 2021-06-23 20:37:09 · 151 阅读 · 0 评论 -
深入剖析Linux IO原理和几种零拷贝机制的实现
本文来说下Linux IO原理和几种零拷贝机制的实现文章目录概述概述原创 2021-06-22 12:59:29 · 255 阅读 · 2 评论 -
BIO、NIO、AIO的区别
很多文章在谈论到BIO、NIO、AIO的时候仅仅是抛出一堆定义,以及一些生动的例子。看似很好理解。但是并没有将最基础的本质原理显现出来,如果没有没有从IO的原理出发的话是很难理解这三者之间的区别的。所以本篇文章从Java是如何进行IO操作为开头进行分析。文章目录...原创 2021-05-14 19:51:07 · 369 阅读 · 0 评论 -
IO复用之select、poll、epoll模型
因为select、poll、epoll都是IO复用模型的解决方案,它们最终的目标都是为了解决单个应用进程(从应用的角度来看这里也可以理解为单个线程,从系统的角度来看这里面向的就是应用进程)能同时处理多个网络连接的问题。文章目录概述概述从宏观上如果系统要对外提供一个进程可以监控多个连接的方法的话,那么实现这个方法需要考虑的问题主要是下面几条,而select、poll、epoll 他们的不同之处也都是围绕着这几点展开的:1、系统如何知道进程需要监控哪些连接和事件(也就是fd)。2、系统知道进程需.原创 2021-05-10 15:34:19 · 375 阅读 · 0 评论 -
深入理解5种IO模型
本文来描述下5种IO模型文章目录什么是IO什么是IO我们都知道unix世界里、一切皆文件、而文件是什么呢?文件就是一串二进制流而已、不管socket、还是FIFO、管道、终端、对我们来说、一切都是文件、一切都是流、在信息交换的过程中、我们都是对这些流进行数据的收发操作、简称为I/O操作(input and output)、往流中读出数据、系统调用read、写入数据、系统调用write、不过话说回来了、计算机里有这么多的流、我怎么知道要操作哪个流呢?做到这个的就是文件描述符、即通常所说的fd、一个.原创 2021-05-10 13:18:16 · 204 阅读 · 0 评论 -
NIO和Netty经典面试题
本文分享一些NIO和Netty相关的经典面试题,看下你是不是都已经掌握了。文章目录NIONIO阐述 NIO原理?BIO/NIO/AIO有什么区别?有那些实现?讲讲NIO的原理与实现?NIO用到了哪个经典技术思想?JDK1.8中NIO有做什么优化了解多路复用机制 常见问题 同步阻塞、同步非阻塞、异步的区别?select、poll、eopll的区别?Linux网络IO模型哪些库或者框架用到NIO?redis的事件驱动多路复用底层实现;引申到NIO编程NIO解决了什么问题有了解过min.原创 2021-05-04 20:40:07 · 386 阅读 · 0 评论