Netty框架
Master.TJ
https://github.com/fengruotj
展开
-
Netty详解(一):Reactor模型
1. Reactor模型简介在Java进行网络通信时,通常有两种体系结构,分别为:thread-based architecture(基于线程)、event-driven architecture(事件驱动)1.1 thread-based architecture基于线程的体系结构通常会使用多线程来处理客户端的请求,每当接收到一个请求,便开启一个独立的线程来处理。这种方式虽然是直观的,但是...原创 2019-04-02 12:18:07 · 2410 阅读 · 1 评论 -
Netty详解(二)Linux 网络IO模型
1. Linux I/O基础知识针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件–>内核空间–>用户空间。...原创 2019-05-20 10:04:55 · 700 阅读 · 0 评论 -
Netty详解(三):Netty 入门应用
1. Netty服务端开发TimeServer.javapackage com.basic.netty.bio;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.nett...原创 2019-05-21 09:16:07 · 435 阅读 · 0 评论 -
Netty详解(五):Netty TCP粘包 拆包
1. 概述无论是服务端还是客户端,我们读取或者发送消息的时候,都需要考虑TCP底层的粘包和拆包机制。下面我们来通过Netty来详解TCP底层的粘包和拆包机制。2. TCP底层的粘包和拆包机制TCP是一个“流”协议,所谓流,就是没有界限的一串数据。大家可以想想河里的水流,它们是连城有一片的,期间没有界限。TCP底层并不了解上层业务数据的具体含义,他会根据TCP缓冲区的实际情况进行包的划分,所以...原创 2019-05-21 10:22:16 · 1503 阅读 · 0 评论 -
Netty详解(六):Netty 编解码技术
1. 概述基于Java提供的对象输入/输出流ObjectInputStream和ObjectOutputStream,可以直接把Java对象作为可村粗的字节数组写入文件,也可以传输到网络上去。Java序列化的目的主要有两个:网络传输对象持久化当进行远程进程服务调用时,需要把传输的Java对象编码为字节数组或者ByteBuffer对象。当远程服务读取到ByteBuffer对象或者字节...原创 2019-05-21 10:37:23 · 829 阅读 · 0 评论 -
Netty详解(四):Netty 整体架构
1. 概述Netty是JBoss出品的高效的Java NIO开发框架,本文将主要分析Netty实现方面的东西。Netty总体架构图:2. Bufferorg.jboss.netty.buffer包的接口及类的结构图如下:2.1 Channel Buffer的种类Netty使用ChannelBuffer来存储并操作读写的网络数据。ChannelBuffer除了提供和ByteBuffe...原创 2019-05-21 11:14:47 · 1156 阅读 · 0 评论 -
Netty详解(七):Netty 编解码以及消息头编解码器
1. MessagePack 概述MessagePack是一个高效的二进制序列化框架,像JSON一样支持不同语言间的数据交换,速度更快,序列化之后的码流更小。MessagePacke优点编解码高效,性能高序列化后的码流小支持跨语言1.1 MessagePack Java API 介绍<dependencies> ... <dependency>...原创 2019-05-22 09:32:55 · 2836 阅读 · 0 评论