![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 122 阅读 · 0 评论 -
Netty学习笔记七Netty源码
Netty学习笔记七七. Netty源码写的比较乱,请见谅。1. 启动剖析Nio流程// 1. 创建SelectorSelector selector = Selector.open(); // 2. 创建serverSocketChannelServerSocketChannel 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 · 406 阅读 · 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 · 368 阅读 · 0 评论 -
Netty学习笔记三Netty基础
Netty学习笔记三三. Netty基础1. 概述1.1 Netty 是什么?Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protocol servers & clients.Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端这里的异原创 2021-08-26 16:17:13 · 289 阅读 · 0 评论 -
Netty学习笔记二网络编程
Netty学习笔记二二. 网络编程1. 阻塞模式阻塞主要表现为:连接时阻塞读取数据时阻塞缺点:阻塞单线程在没有连接时会阻塞等待连接的到达,连接到了以后,要进行读取数据,如果没有数据,还要阻塞等待数据的到达。如果在等待连接期间其他线程发来了数据,依然读取不到数据,只能等待新的连接到达后,再次遍历所有channel的时候才能读取。如果在一个客户端连接上以后,迟迟不发送数据,那么下一个客户端来的时候,想请求连接就只能阻塞的等待,等待第一个客户端发送数据到服务器端,并处理完成,才会和新的客户原创 2021-08-26 16:15:05 · 177 阅读 · 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 · 206 阅读 · 0 评论