
Netty
Franco蜡笔小强
小码农
展开
-
Netty这一篇入门
本文基于Netty4.1展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目提供参考。Netty简介Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。JDK原生NIO程序的问题JDK原生也有一套网络应用程序API,但是存在一系列问题,主要如下: NIO的类库和API繁杂,使...转载 2018-12-07 14:38:30 · 501 阅读 · 0 评论 -
[Netty]拆包器的奥秘
作者:简书闪电侠链接:https://www.jianshu.com/p/dc26e944da95为什么要粘包拆包为什么要粘包首先你得了解一下TCP/IP协议,在用户数据量非常小的情况下,极端情况下,一个字节,该TCP数据包的有效载荷非常低,传递100字节的数据,需要100次TCP传送,100次ACK,在应用及时性要求不高的情况下,将这100个有效数据拼接成一个数据包,那会缩短到一个...原创 2019-05-21 10:02:53 · 455 阅读 · 0 评论 -
[Netty]writeAndFlush全解析
作者:简书闪电侠链接:https://www.jianshu.com/p/feaeaab2ce56前言在前面的文章中,我们已经详细阐述了事件和异常传播在netty中的实现,(netty源码分析之pipeline(一),netty源码分析之pipeline(二)),其中有一类事件我们在实际编码中用得最多,那就是 write或者writeAndFlush,也就是我们今天的主要内容主要内容...原创 2019-05-21 10:01:24 · 13822 阅读 · 0 评论 -
[Netty]pipeline(二)
作者:简书闪电侠链接:https://www.jianshu.com/p/087b7e9a27a2前言netty源码分析之pipeline(一)中,我们已经了解了pipeline在netty中所处的角色,像是一条流水线,控制着字节流的读写,本文,我们在这个基础上继续深挖pipeline在事件传播,异常传播等方面的细节主要内容接下来,本文分以下几个部分进行netty中的Unsa...原创 2019-05-21 09:59:20 · 705 阅读 · 0 评论 -
[Netty]pipeline(一)
作者:简书闪电侠链接:https://www.jianshu.com/p/6efa9c5fa702通过前面的源码系列文章中的netty reactor线程三部曲,我们已经知道,netty的reactor线程就像是一个发动机,驱动着整个netty框架的运行,而服务端的绑定和新连接的建立正是发动机的导火线,将发动机点燃netty在服务端端口绑定和新连接建立的过程中会建立相应的channe...原创 2019-05-21 09:57:58 · 1274 阅读 · 0 评论 -
[Netty]reactor线程的面纱(三)
作者:简书闪电侠链接:https://www.jianshu.com/p/58fad8e42379上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下:reactor线程三部曲简单总结一下reactor线程三部...原创 2019-03-20 18:39:48 · 303 阅读 · 0 评论 -
[Netty]reactor线程的面纱(二)
作者:简书闪电侠链接:https://www.jianshu.com/p/467a9b41833e如果你对netty的reactor线程不了解,建议先看下上一篇文章netty源码分析之揭开reactor线程的面纱(一),这里再把reactor中的三个步骤的图贴一下reactor线程我们已经了解到netty reactor线程的第一步是轮询出注册在selector上面的IO事件(s...原创 2019-03-20 18:38:15 · 306 阅读 · 0 评论 -
[Netty]reactor线程的面纱(一)
作者:简书闪电侠链接:https://www.jianshu.com/p/0d0eece6d467netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解nett...原创 2019-03-20 18:36:43 · 417 阅读 · 0 评论 -
[Netty]nio线程个数以及线程命名规则
作者:简书闪电侠链接:https://www.jianshu.com/p/512e983eedf5概述netty是一个以高性能著称的网络通信框架,许多开源项目都使用了netty作为底层网络通信框架,如avro,dubbo,nats;本文将从源码的角度讲述netty在确定线程个数方面如何保证应用程序性能最优,源码基于netty-4.1.6.Final线程个数在何时达到最优我们知道,...原创 2019-03-20 18:34:08 · 4595 阅读 · 0 评论 -
[Netty]netty源码分析之服务端启动全解析
作者:简书闪电侠链接:https://www.jianshu.com/p/c5068caab217来源:简书backgroundnetty 是一个异步事件驱动的网络通信层框架,其官方文档的解释为Netty is a NIO client server framework which enables quick and easy development of network app...原创 2019-03-15 18:13:18 · 282 阅读 · 0 评论 -
[Netty]服务端启动流程介绍
作者:简书闪电侠链接:https://www.jianshu.com/p/ec3ebb396943来源:简书最小化服务端启动demo我们先来看一下最小化服务端启动demo,我们直接来上代码,然后逐个解释NettyServer.javapublic class NettyServer { public static void main(String[] args) ...原创 2019-03-15 18:10:50 · 354 阅读 · 0 评论 -
[Netty]Netty是什么?
作者:简书闪电侠链接:https://www.jianshu.com/p/a4e03835921a来源:简书在开始了解Netty是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的IO编程,应该如何来实现?IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的"hello world"给服务端,服务端收到之后打印。为了方便演示,下面例子中,...原创 2019-03-15 18:08:33 · 312 阅读 · 0 评论 -
[Netty]LengthFieldBasedFrameDecoder
作者:简书闪电侠链接:https://www.jianshu.com/p/a0a51fd79f62拆包的原理关于拆包原理的上一篇博文 netty源码分析之拆包器的奥秘 中已详细阐述,这里简单总结下:netty的拆包过程和自己写手工拆包并没有什么不同,都是将字节累加到一个容器里面,判断当前累加的字节数据是否达到了一个包的大小,达到一个包大小就拆开,进而传递到上层业务解码handler之...原创 2019-05-21 10:03:55 · 1064 阅读 · 0 评论