nio
文章平均质量分 81
Sun-Yang
这个作者很懒,什么都没留下…
展开
-
Netty学习笔记八Reactor模型
Netty学习笔记八 八. Reactor 典型实现 常见的线程模型 传统阻塞IO服务模型: 一个线程处理一个连接,阻塞。 Reactor模型: 基于IO复用模型。 Reactor(反应器模式,分发者模式,通知者模式)三种典型实现 单Reactor单线程 单Reactor多线程 主从Reactor多线程 Netty线程模式(Netty主要基于主从Reactor多线程模型做了一定的改进,其中主从Reactor多线程模型有多个Reacotr) 核心组成 Reactor: Reactor在一个单原创 2021-08-26 16:26:56 · 116 阅读 · 0 评论 -
Netty学习笔记七Netty源码
Netty学习笔记七 七. Netty源码 写的比较乱,请见谅。 1. 启动剖析 Nio流程 // 1. 创建Selector Selector selector = Selector.open(); // 2. 创建serverSocketChannel ServerSocketChannel ssc = ServerSocketChannel.open(); // 3. 将serverSocketChannel注册到selector上 SelectionKey selectionKey原创 2021-08-26 16:25:41 · 186 阅读 · 0 评论 -
Netty学习笔记六RPC框架简略版
Netty学习笔记六 六. RPC框架 服务端 package com.sunyang.netty.study.server; import com.sunyang.netty.study.protocol.MessageCodecSharable; import com.sunyang.netty.study.protocol.ProtocolFrameDecoder; import com.sunyang.netty.study.server.handler.RpcRequestMessageHand原创 2021-08-26 16:23:17 · 125 阅读 · 0 评论 -
Netty学习笔记五Netty参数
Netty学习笔记五 五. 优化与参数 1. 优化 1.1 扩展序列化算法 序列化,反序列化主要用在消息正文的转换上 序列化时,需要将 Java 对象变为要传输的数据(可以是 byte[],或 json 等,最终都需要变成 byte[]) 反序列化时,需要将传入的正文数据还原成 Java 对象,便于处理 package com.sunyang.netty.study.protocol; import com.google.gson.*; import java.io.*; import java原创 2021-08-26 16:21:00 · 399 阅读 · 0 评论 -
Netty学习笔记四Netty进阶协议相关
Netty学习笔记四 四. Netty 进阶 1. 粘包半包 1.1 粘包 server端 package com.sunyang.netty.study.nettydemo; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboun原创 2021-08-26 16:20:05 · 358 阅读 · 0 评论 -
Netty学习笔记三Netty基础
Netty学习笔记三 三. Netty基础 1. 概述 1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端 这里的异原创 2021-08-26 16:17:13 · 286 阅读 · 0 评论 -
Netty学习笔记二网络编程
Netty学习笔记二 二. 网络编程 1. 阻塞模式 阻塞主要表现为: 连接时阻塞 读取数据时阻塞 缺点: 阻塞单线程在没有连接时会阻塞等待连接的到达,连接到了以后,要进行读取数据,如果没有数据,还要阻塞等待数据的到达。 如果在等待连接期间其他线程发来了数据,依然读取不到数据,只能等待新的连接到达后,再次遍历所有channel的时候才能读取。 如果在一个客户端连接上以后,迟迟不发送数据,那么下一个客户端来的时候,想请求连接就只能阻塞的等待,等待第一个客户端发送数据到服务器端,并处理完成,才会和新的客户原创 2021-08-26 16:15:05 · 175 阅读 · 0 评论 -
Netty学习笔记一NIO基础
Netty学习笔记一 一. NIO 基础 non-blocking io 非阻塞IO (也可称为new IO, 因为是JDK1.4加入的) 1. 三大组件 1.1 Channel 通道:数据的传输通道。我们之前使用的Stream也是数据的传输通道,只不过他们是单向的数据传输通道(输出(流)通道,输入(流)通道),但是Channel是读写数据的**【双向通道】**,可以将数据读入buffer,也可以将buffer的数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream原创 2021-08-26 16:10:13 · 204 阅读 · 0 评论