netty
文章平均质量分 89
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
赵广陆
CSDN认证博客专家、CSDN的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
由浅入深Netty源码分析
目录1 启动剖析2 NioEventLoop 剖析3 accept 剖析4 read 剖析1 启动剖析我们就来看看 netty 中对下面的代码是怎样进行处理的原创 2023-05-21 14:44:12 · 811 阅读 · 0 评论 -
由浅入深Netty简易实现RPC框架
目录1 准备工作2 服务器 handler3 客户端代码第一版4 客户端 handler 第一版5 客户端代码 第二版6 客户端 handler 第二版1 准备工作这些代码可以认为是现成的,无需从头编写练习为了简化起见,在原来聊天项目的基础上新增 Rpc 请求和响应消息原创 2023-05-21 14:30:19 · 636 阅读 · 0 评论 -
由浅入深Netty代码调优
目录1. 优化1.1 扩展序列化算法2 参数调优2.1 CONNECT_TIMEOUT_MILLIS2.2 SO_BACKLOG2.3 ulimit -n2.4 TCP_NODELAY2.5 SO_SNDBUF & SO_RCVBUF2.6 ALLOCATOR2.7 RCVBUF_ALLOCATOR原创 2023-05-21 14:23:14 · 520 阅读 · 0 评论 -
由浅入深Netty聊天室案例
目录1 聊天室业务介绍2 聊天室业务-登录3 聊天室业务-单聊4 聊天室业务-群聊5 聊天室业务-退出6 聊天室业务-空闲检测6.1 连接假死原创 2023-05-20 12:37:16 · 150 阅读 · 0 评论 -
由浅入深Netty粘包与半包解决方案
目录1 粘包现象2 半包现象3 现象分析4 解决方案4.1 方法1:短链接4.2:方法2:固定长度4.3 方法3:固定分隔符4.4 方法4:预设长度原创 2023-05-20 11:41:02 · 651 阅读 · 0 评论 -
由浅入深Netty组件实战
目录1 EventLoop1.1 演示 NioEventLoop 处理 io 事件1.2 演示 NioEventLoop 处理普通任务1.3 演示 NioEventLoop 处理定时任务2 Channel2.1 ChannelFuture2.2 CloseFuture3 Future & Promise3.1 例1:同步处理任务成功3.2 例2:异步处理任务成功3.3 例3:同步处理任务失败3.4 例4:同步处理任务失败3.5 例5:异步处理任务失败3.6 例6:死锁检查原创 2023-05-20 11:18:28 · 1072 阅读 · 0 评论 -
由浅入深Netty入门案例
目录1 概述1.1 Netty 是什么?1.2 Netty 的作者1.3 Netty 的地位1.4 Netty 的优势2 Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理2.5 提示原创 2023-05-20 11:01:00 · 1054 阅读 · 0 评论 -
由浅入深Netty协议设计与解析
目录1 为什么需要协议?2 redis 协议举例3 http 协议举例4 自定义协议要素4.1 编解码器4.2 什么时候可以加 @Sharable1 为什么需要协议?TCP/IP 中消息传输基于流的方式,没有边界。协议的目的就是划定消息的边界,制定通信双方要原创 2023-05-20 12:03:39 · 689 阅读 · 0 评论 -
由浅入深Netty基础知识IO相关
目录1 stream vs channel2 IO 模型3 零拷贝3.1 传统 IO 问题3.2 NIO 优化4 AIO4.1 文件 AIO4.2 守护线程4.3 网络 AIO1 stream vs channelstream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用原创 2023-05-18 22:48:46 · 442 阅读 · 0 评论 -
由浅入深Netty基础知识NIO网络编程
目录1 非阻塞 vs 阻塞1.1 阻塞1.2 非阻塞1.3 多路复用2 Selector2.1 创建2.2 绑定 Channel 事件2.3 监听 Channel 事件2.4 select 何时不阻塞3 处理 accept 事件3.1 事件发生后能否不处理4 处理 read 事件4.1 为何要 iter.remove()4.2 cancel 的作用4.3 不处理边界的问题4.4 处理消息的边界4.5 ByteBuffer 大小分配5 处理 write 事件原创 2023-05-18 22:19:19 · 504 阅读 · 0 评论 -
由浅入深Netty基础知识NIO三大组件原理实战
目录1 三大组件1.1 Channel & Buffer1.2 Selector1.3 多线程版设计1.4 多线程版缺点1.5 线程池版设计1.6 线程池版缺点1.7 selector 版设计2 ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构2.3 调试工具类2.4 ByteBuffer 常见方法2.4.1 分配空间2.4.2 向 buffer 写入数据2.4.3 从 buffer 读取数据2.4.5 mark 和 rese原创 2023-05-17 22:06:08 · 523 阅读 · 0 评论 -
Netty详解ByteBuf
目录1 工作原理2 基本使用2.1 读取操作2.2 写入操作2.4 clear()3 ByteBuf 使用模式4 ByteBuf 的分配5 ByteBuf的释放5.1、⼿动释放5.2 自动释放5.2.1 TailHandler5.2.2 SimpleChannelInboundHandler5.2.3 HeadHandler5.3 小结1 工作原理Java NIO 提供了ByteBuffer 作为它 的字节容器,但是这个类使⽤起来过于复杂,⽽且也有些繁琐。原创 2022-06-01 16:57:28 · 4372 阅读 · 0 评论 -
Java中IO流类的体系中BIO与NIO
目录1 BIO同步阻塞IO2 NIO同步非阻塞IO3 select机制3.1 poll机制 3.2 epoll机制 4 Java中的IO模型4.1 BIO模型4.2 NIO模型4.3 AIO模型1 BIO同步阻塞IO1.1 特性:同步阻塞IO1.2 特点:一个请求对应一个线程,上下文切换占用的资源很重。1.3 缺点:无用的请求也会占用一个线程,没有数据达到,也会阻塞。1.4 改进:通过线程池机制。 但是还是未能解决一个请求一个线程的本质问题,只原创 2020-02-15 13:39:57 · 1370 阅读 · 0 评论 -
Netty快速入门
目录1 Netty简介1.1 异步、事件驱动1.2 核心架构1.3 Netty优势1.4 版本说明2、为什么选择Netty,而不选择原生的NIO?3 Netty应用场景4 Reactor线程模型4.1 单Reactor单线程模型4.2 单Reactor多线程模型4.3 主从Reactor多线程模型5 Netty模型1 Netty简介入门知识:Java中IO流类的体系中BIO与NIONetty是⼀个⾼性能的、异步的、基于事件驱动的⽹络应⽤框架。官⽹:https://netty.io/官⽅对它有这样原创 2022-01-11 20:30:00 · 556 阅读 · 0 评论 -
Netty快速入门RPC项目
目录1 Netty所需背景知识2 创建MyRPC项⽬3 服务端3.1 MyRPCServer3.2 MyChannelInitializer3.3 MyChannelHandler3.4 测试用例3.5 测试3 客户端3.1 MyRPCClient3.2 MyClientHandler3.3 测试用例1 Netty所需背景知识前言:如果你还对jdk的socket还有印象,下面的例子很简单理解的,不过后续我的文章会详细Netty模型各个组件。Netty快速入门2 创建MyRPC项⽬pom.x原创 2022-05-31 17:34:16 · 478 阅读 · 0 评论 -
Netty核心组件详解
目录1 Channel2 EventLoop、EventLoopGroup3 ChannelHandler4 ChannelPipeline5 Bootstrap6 Future7 小结通过前⾯的文章,我们对Netty的整体开发有了初步的了解,在Netty中有⼀些核⼼组件,我们必须对其要有深刻的理解,下⾯我们⼀⼀来了解下。Netty快速入门Netty快速入门RPC项目原创 2022-06-01 10:27:02 · 534 阅读 · 0 评论