![](https://img-blog.csdnimg.cn/20210131202309494.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Netty
文章平均质量分 87
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
最小的帆也能远航
不必借光而行,你我亦是星辰!
展开
-
Netty 实现 Dubbo RPC
目录1.RPC基本介绍2.RPC调用流程图3.RPC调用流程说明4.实现Dubbo RPC(基于Netty)4.1需求说明4.2设计说明4.3代码实现1.RPC基本介绍RPC(Remote Procedure Call)—远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样(如图)...原创 2021-02-01 14:18:14 · 252 阅读 · 0 评论 -
Netty 核心源码剖析
1.基本说明只有看过Netty源码,才能说是真的掌握了Netty框架。 在io.netty.example包下,有很多Netty源码案例,可以用来分析。 源码分析章节是针对有Java项目经验,并且玩过框架源码的人员讲的,否则你听起来会有相当的难度2.Netty启动过程源码剖析2.1源码剖析目的用源码分析的方式走一下Netty(服务器)的启动过程,更好的理解Netty的整体设计和运行机制。2.2源码剖析说明:源码需要剖析到Netty...原创 2021-02-01 14:07:02 · 444 阅读 · 0 评论 -
TCP 粘包和拆包及解决方案
目录1.TCP粘包和拆包基本介绍2.TCP粘包和拆包现象实例3.TCP粘包和拆包解决方案4.具体实例1.TCP粘包和拆包基本介绍TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辨出完整的数据包了,因为面向流的...原创 2021-02-01 10:55:09 · 1364 阅读 · 1 评论 -
Netty 编解码器和 Handler 调用机制
目录1.基本说明2.编码解码器3.解码器-ByteToMessageDecoder4.Netty的handler链的调用机制5.解码器-ReplayingDecoder6.其它编解码器6.1其它解码器6.2其它编码器7.Log4j整合到Netty1.基本说明Netty的组件设计:Netty的主要组件有Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe...原创 2021-02-01 10:44:39 · 309 阅读 · 0 评论 -
Google Protobuf
目录1.编码和解码的基本介绍2.Netty本身的编码解码的机制和问题分析3.Protobuf4.Protobuf快速入门实例5.Protobuf快速入门实例21.编码和解码的基本介绍编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码[示意图] codec(编解码器)的组成部分有两个:decoder(解码器)和encoder(编码器)。encoder负责把业务数据转换成字节码数据,dec...原创 2021-02-01 10:33:06 · 872 阅读 · 0 评论 -
Netty 核心模块组件
目录1.Bootstrap、ServerBootstrap2.Future、ChannelFuture3.Channel4.Selector5.ChannelHandler及其实现类6.Pipeline和ChannelPipeline7.ChannelHandlerContext8.ChannelOption9.EventLoopGroup和其实现类NioEventLoopGroup10.Unpooled类11.Netty应用实例-...原创 2021-02-01 10:26:19 · 277 阅读 · 0 评论 -
Netty 高性能架构设计
目录1.线程模型基本介绍2.传统阻塞I/O服务模型2.1工作原理图2.2模型特点2.3问题分析3.Reactor模式3.1针对传统阻塞I/O服务模型的2个缺点,解决方案:3.2I/O复用结合线程池,就是Reactor模式基本设计思想,如图3.3Reactor模式中核心组成3.4Reactor模式分类4.单Reactor单线程4.1方案说明4.2方案优缺点分析5.单Reactor多线程5.1原理图5.2对上图的小结5.3方案优缺点...原创 2021-02-01 10:05:15 · 218 阅读 · 0 评论 -
Netty 概述
目录1.原生NIO存在的问题2.Netty官网说明3.Netty的优点4.Netty版本说明1.原生NIO存在的问题NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。 需要具备其他的额外技能:要熟悉Java多线程编程,因为NIO编程涉及到Reactor模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序。 开发工作量和难度都...原创 2021-02-01 09:31:58 · 141 阅读 · 0 评论 -
Java NIO 编程
1.Java NIO基本介绍Java NIO全称 **Java non-blocking IO**,是指JDK提供的新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(即NewIO),是同步非阻塞的。 NIO相关类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写。【基本案例】 NIO有三大核心部分:**Channel(通道)、Buffer(缓冲区)、Selector(选择器)** 。 NIO是面...原创 2021-02-01 09:12:19 · 331 阅读 · 0 评论 -
Java BIO 编程
1.I/O 模型1.1模型基本说明I/O模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。 Java共支持3种网络编程模型I/O模式:BIO、NIO、AIO。 Java BIO:同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。【简单示意图】Java NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),...原创 2021-01-31 21:47:38 · 153 阅读 · 0 评论 -
Netty 介绍和应用场景
目录1.Netty 的介绍2.Netty 的应用场景2.1互联网行业2.2游戏行业2.3大数据领域2.4其它开源项目使用到 Netty3.Netty 的学习资料参考1.Netty 的介绍Netty是由JBOSS提供的一个Java开源框架,现为Github上的独立项目。 Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。 Netty主要针对在TCP协议下,面向Client端的高...原创 2021-01-31 20:32:17 · 418 阅读 · 1 评论