![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 64
netty实战和原理
帅的唏哩哗啦
这个作者很懒,什么都没留下…
展开
-
nio与零拷贝
零拷贝一、零拷贝原理二、nio零拷贝一、零拷贝原理传统iommap:mmap 通过内存映射,将文件映射到内核缓冲区,同时,用户空间可以共享内核空间的数据。这样,在进行网络传输时,就可以减少内核空间到用户控件的拷贝次数。sendFile:Linux 2.1 版本 提供了 sendFile 函数,其基本原理如下:数据根本不经过用户态,直接从内核缓冲区进入到 Socket Buffer,同时,由于和用户态完全无关,就减少了一次上下文切换零拷贝从操作系统角度,是没有cpu 拷贝sendFile优原创 2021-03-23 11:51:47 · 266 阅读 · 0 评论 -
Reactor线程模型详解
Reactor线程模型简介一、单Reactor单线程二、单Reactor多线程三、主从Reactor多线程3.1 netty线程模型图简介在目前的线程模型中一种是传统阻塞的I/O模型,一种是Reactor线程模型。Reactor模型根据Reactor的数量和处理资源线程池的数量不同又分为三种Reactor线程模型:单Reactor单线程单Reactor多线程主从Reactor多线程Reactor模型的核心是:Reactor+Handles。Reactor在一个单独的线程中运行,负责监听和分发事原创 2020-11-14 17:09:13 · 2205 阅读 · 0 评论 -
netty(七) --基于redis搭建netty tcp通讯集群方案
基于redis搭建netty tcp通讯集群方案简介一、集群原理二、项目依赖三、部分代码简介在实际应用中我们的tcp服务端经常会使用集群方式运行,这样增大了系统的性能和容灾,本文讲述简单的netty tcp服务端集群应用原理的部分代码,文章源码地址:https://github.com/itwwj/netty-learn.git中的netty-day08-cluster项目。一、集群原理服务端启动会向redis注册自己,以ip为key,以连接信息为value客户端连接服务端时,服务端会向red原创 2020-11-06 10:00:10 · 5412 阅读 · 2 评论 -
netty(六) --基于netty搭建大文件分片传输服务
基于netty搭建大文件分片传输服务简介一、依赖导入二、代码2.1代码结构2.2 部分代码三、测试简介在应用中经常会使用到服务间的大文件传输功能,本文简单介绍和编写基于netty的客户端和服务端之间的大文件分片传输功能,项目源码:https://github.com/itwwj/netty-learn.git中的netty-day07-uploading项目。一、依赖导入 <properties> <protostuff.version>1.0.10&l原创 2020-11-04 14:46:34 · 2165 阅读 · 3 评论 -
netty(五) --netty与springBoot整合
netty与springBoot整合简介一、依赖导入二、代码三 、测试简介通常在项目中我们都是结合spring或者springboot使用netty,本章节介绍springboot整合netty。项目源码地址:https://github.com/itwwj/netty-learn.git中的netty-day06-boot项目。一、依赖导入 <properties> <netty_version>4.1.24.Final</netty_versi原创 2020-11-03 17:06:56 · 957 阅读 · 3 评论 -
netty(四) --基于netty搭建简单的http服务器
基于netty简单的http服务器搭建简介一、http协议简介1.1 HttpRequest1.2 HttpResponse二、服务端开发三、测试简介 HTTP是一个超文本传输协议,是一种建立在TCP传输协议之上的应用层协议。http是目前web的主流协议,本章讲述的是基于netty NIO开发的http服务端。本章项目源码地址:https://github.com/itwwj/netty-learn.git中的netty-day05-httpServer项目。一、http协议简介 HTTP是一个应原创 2020-11-03 15:58:29 · 868 阅读 · 0 评论 -
netty(三)--自定义消息编码、解码器
自定义消息编码、解码器简介一、自定义编码、解码器解决的问题二、代码实现2.1MessageToByteEncoder和ByteToMessageDecoder介绍2.2代码实现2.3测试简介一、自定义编码、解码器解决的问题二、代码实现2.1MessageToByteEncoder和ByteToMessageDecoder介绍2.2代码实现2.3测试...原创 2020-11-03 10:25:20 · 1145 阅读 · 0 评论 -
netty(二)--解决粘包拆包及编码解码问题
事件处理类中解决粘包拆包及编码解码问题简介一、粘包、拆包问题1.1粘包、拆包发生的原因1.2粘包、拆包解决方案1.3代码演示二、消息的编码解码问题2.1 编码解码解决的问题2.2 实现简单的编码解码2.3 使用开源的Protobuf实现编码解码2.3.1 Protobuf简介2.3.2 Protobuf环境搭建2.3.3 Protobuf与netty结合案例简介 本文主要讲解在现实netty开发中遇到的编解码和粘包、半包问题,参考《netty权威指南》、以及自己的一点心得体会,欢迎评论指错,共同成长。原创 2020-08-24 14:30:01 · 442 阅读 · 0 评论 -
netty(一)--入门应用
netty之入门应用 简介一、服务端1.1启动类1.2事件处理类:简介 本案例会从两个简单的demo入手,从无到有手写一个netty简单的服务端和客户端,体验一下netty的强大和简便。案例源码:https://github.com/itwwj/netty-learn.git一、服务端1.1启动类/** * netty服务端启动类 * * @author jie */public class NettyServer { /** * 设置端口号 */原创 2020-08-18 13:52:02 · 334 阅读 · 0 评论 -
io模型及nio进阶
io模型及nio进阶简介一、UNIX网络编程io模型简介1.1 阻塞io模型1.2 非阻塞io模型1.3 io复用模型1.4 信号驱动io模型1.5 异步io模型二、i/o多路复用简介本文是普及一下linux的io模型以及深入了解java nio,参考技术文献《netty权威指南 第二版》、《UNIX网络编程》。一、UNIX网络编程io模型简介1.1 阻塞io模型最常用的I/O模型就是阻塞io模型,缺省情况下,所有文件操作都是阻塞的.我们以套接字接口为例来讲解此模型:在进程空间中调用recvfmm原创 2020-08-17 15:38:04 · 242 阅读 · 0 评论 -
关于java的io
关于java的io1. java的io分类1. java的io分类java的io分为bio、nio和aio。BIO 同步阻塞I/O模式,全称Block-IO 是一种同步阻塞的io模型。并发处理能力低,通信耗时。NIO同步非阻塞模式,全程 Non-Block IO ,是Java SE 1.4版以后,针对网络传输效能优化的新功能。是一种非阻塞同步的通信模式。NIO 与原来的 I/O 有同样的作用和目的, 他们之间最重要的区别是数据打包和传输的方式。原来的 I/O 以流的方式处理数据,而 NIO 以块的方原创 2020-08-14 23:18:14 · 172 阅读 · 0 评论