Netty序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。更是面试的加分项。Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种N ...
分类:
Web程序 时间:
2018-10-20 11:43:31
阅读次数:
202
Reator模式是大多数IO相关组件如Netty、Redis在使用时的IO模式,为什么需要这种模式,如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个While循环,不断监听端口是否有新的套接字连接,如果有,就调用一个函数处理,类似: ...
分类:
编程语言 时间:
2018-10-18 13:13:08
阅读次数:
141
Netty可以通过一些handler实现简单的http服务器。具体有三个类,分别是HttpServer.java、ServerHandlerInit.java、BusiHandler.java。 具体代码如下: HttpServer.java package cn.enjoyedu.server; ...
分类:
Web程序 时间:
2018-10-16 20:21:45
阅读次数:
214
Finchley 正式版的发布貌似经历了相当长的时间,这次的重大发布主要带来了以下 4 项重大更新。 重大更新 1、新增 Spring Cloud Gateway 组件 Spring Cloud Gateway 是一个基于 Spring Webflux 和响应式 Netty 的下一代 API 网关, ...
分类:
编程语言 时间:
2018-10-15 18:14:06
阅读次数:
188
总览 最大的区别:Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC通信。而SpringCloud是基于Http协议+rest接口调用远程过程的通信,相对来说,Http请求会有更大的报文,占的带宽也会更多。但是REST相比RPC更为灵活,服务 ...
分类:
编程语言 时间:
2018-10-15 14:23:05
阅读次数:
132
文件上传 这个处理器的原理是接收HttpObject对象,按照HttpRequest,HttpContent来做处理,文件内容是在HttpContent消息带来的。 然后在HttpContent中一个chunk一个chunk读,chunk大小可以在初始化HttpServerCodec时设置。将每个c ...
分类:
Web程序 时间:
2018-10-14 20:42:20
阅读次数:
190
目录: 1. 粘包 & 拆包及解决方案 ByteToMessageDecoder 2. 基于长度编解码器 3. 基于分割符的编解码器 4. google 的 Protobuf 序列化介绍 5. 其他的 前言 Netty 作为一个网络框架,对 TCP 连接中的问题都做了全面的考虑,比如粘包拆包导致的半 ...
分类:
Web程序 时间:
2018-10-13 22:52:09
阅读次数:
246
前言 即使这是一本小册,但基于“不提笔不读书”的理念,仍然有必要总结一下。此小册对于那些“硬杠 Netty 源码 却不曾在千万级生产环境上使用实操”的用户非常有用。当然,对那些没有 Netty 编程经验的人来说,更为有用。 放个小册地址: "[Netty 入门与实战:仿写微信 IM 即时通讯系统" ...
分类:
Web程序 时间:
2018-10-13 22:43:20
阅读次数:
255
IdleStateHandler是Netty为我们提供的检测连接有效性的处理器,一共有读空闲,写空闲,读/写空闲三种监测机制。 将其添加到我们的ChannelPipline中,便可以用来检测空闲。 先通过一段代码来学习下IdleStateHandler的用法: ConnectStateHandler ...
分类:
Web程序 时间:
2018-10-13 11:36:14
阅读次数:
172
Netty提供的TCP数据拆包、粘包解决方案 1.前言 关于TCP的数据拆包、粘包的介绍,我在上一篇文章里面已经有过介绍。 想要了解一下的,请点击这里 "Chick Here!" 今天我们要讲解的是Netty提供的两种解决方案: 1. DelimiterBasedFrameDecoder 2. Fi ...
分类:
Web程序 时间:
2018-10-12 23:36:20
阅读次数:
162