![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NIO和netty
文章平均质量分 73
香树
我们不生产代码,我们只是代码的搬运工
展开
-
13、TCP 粘包和拆包及解决方案
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录TCP 粘包和拆包基本介绍TCP 粘包和拆包现象实例netty解决 TCP 粘包和拆包解决方案看一个具体的实例:TCP 粘包和拆包基本介绍TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端) 都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发 给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合 并成一个大的数据块,然后进行封包。这样做虽然提高了效.原创 2022-05-21 20:25:30 · 731 阅读 · 0 评论 -
12、log4j整合netty
首先引入相关坐标 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency>原创 2022-05-21 17:38:46 · 129 阅读 · 0 评论 -
11、Netty编解码器和handler的调用机制
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录基本说明编码解码器解码器-ByteToMessageDecoderNetty的handler链的调用机制解码器-ReplayingDecoder其它解码器基本说明netty的组件设计:Netty的主要组件有Channel、EventLoop、ChannelFuture、 ChannelHandler、ChannelPipe等ChannelHandler充当了处理入站和出站数据的应用程序逻辑的容器。例如,实 现Cha.原创 2022-05-21 17:17:49 · 507 阅读 · 0 评论 -
9、netty心跳处理机制
package com.atguigu.netty.heartbeat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.EventLoopGroup;import io..原创 2022-05-21 00:05:16 · 111 阅读 · 0 评论 -
8、Netty应用实例-群聊系统
服务器:package com.atguigu.bio.nio.group;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.netty.channel.ChannelPipeline;import i.原创 2022-05-20 22:53:52 · 233 阅读 · 0 评论 -
7、Netty核心模块API
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Bootstrap(客户端启动引导类)、ServerBootstrap(服务器端启动引导类)Bootstrap(客户端启动引导类)、ServerBootstrap(服务器端启动引导类)ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup,workerGroup).channel(NioServerSoc.原创 2022-05-20 20:59:40 · 268 阅读 · 0 评论 -
6、Netty 高性能架构设计
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Netty概述原生NIO存在的问题Netty官网说明Netty的优点Netty版本说明线程模型基本介绍传统阻塞 I/O 服务模型工作原理图模型特点问题分析Reactor 模式单 Reactor 单线程单Reactor多线程主从 Reactor 多线程3 种模式用生活案例来理解Reactor 模式具有如下的优点:Netty模型工作原理示意图1-简单版工作原理示意图2-进阶版工作原理示意图-详细版Netty快速入门实例-TCP服务.原创 2022-05-20 14:33:36 · 84 阅读 · 0 评论 -
5、java NIO 零拷贝技术
1、如果没有DMA如果没有DMA的话,加入某一个客户端与服务器经过TCP三次握手后,服务器把内存中的100KB的数据传给客户端,那么数据就得传入到网卡上,我们直到cpu的运行速度是远大于内存速度大于网卡的速度的。那由于木桶效应,CPU的速度就会被拉低到和网卡一样的速度。CPU会先把内存中的数据读到CPU高速缓冲区,再把数据写到网卡上那么整个数据流程就是如下:①CPU先把数据读到CPU的高速缓冲区②CPU再把数据从高速缓冲区读到网卡2、如果存在DMA的话,上述向网卡传输数据的过程就会变...原创 2022-05-18 21:32:53 · 1000 阅读 · 0 评论 -
4、java io 编程——NIO
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Java NIO 基本介绍测试Buffer的简单使用Buffer的子类NIO 和 BIO 的比较Selector 、 Channel 和 Buffer 的关系Java NIO 基本介绍Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出 的新特性,被统称为 NIO(即 New IO),是同步非阻塞的NIO 相.原创 2022-05-17 18:01:51 · 99 阅读 · 0 评论 -
3、java io 编程——BIO
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Java BIO 基本介绍Java BIO 工作机制BIO示例实例说明代码测试输出结果测试现象BIO问题分析Java BIO 基本介绍Java BIO 就是传统的java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连 接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造 成不必要的线程开销,可以通过线程池.原创 2022-05-17 00:51:02 · 191 阅读 · 2 评论 -
2、I/O 模型基本说明
IO模型的基本说明I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程 序通信的性能Java共支持3种网络编程模型/IO模式:BIO、NIO、AIOJava BIO : 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端 有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成 不必要的线程开销 Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发 送的连接请求都会注册到多路复原创 2022-05-16 23:49:21 · 53 阅读 · 0 评论 -
1、netty的简单认识
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录什么是nettynetty的应用场景什么是nettyNetty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github上的独立项目。Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可 靠性的网络 IO 程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下 的大量数据持续传输的应用。peer是对等体,一个对等体既可以作为.原创 2022-05-16 23:26:58 · 121 阅读 · 0 评论