
netty
文章平均质量分 86
netty
959y
奋斗ing
展开
-
[Netty] 面试问题 1 (十八)
Netty面试题1原创 2023-05-06 16:44:36 · 751 阅读 · 0 评论 -
[Netty] Mpsc Queue (十七)
[Netty] Mpsc Queue (十七)原创 2023-04-24 19:48:11 · 800 阅读 · 0 评论 -
[Netty] HashWheelTimer时间轮 (十六)
HashWheelTimer时间轮 (十六)原创 2023-04-23 21:33:01 · 1004 阅读 · 0 评论 -
[Netty源码] 各个组件介绍 (一)
对于netty源码做了大体的介绍, 各个组件的功能介绍原创 2023-03-23 20:41:19 · 517 阅读 · 0 评论 -
[Netty源码] 服务端启动过程 (二)
Netty源码之服务端启动过程 1.创建服务端channel 2.初始化channel 3.注册selector 4.服务端端口的绑定和触发读事件原创 2023-03-25 21:06:49 · 1093 阅读 · 0 评论 -
[Netty源码] 客户端启动流程 (三)
[Netty源码] 客户端启动流程: 客户端通过解析地址, 获取连接原创 2023-03-28 15:08:21 · 380 阅读 · 0 评论 -
[Netty源码] NioEventLoop相关问题 (四)
[Netty源码] NioEventLoop相关问题 (四), NioEventLoop的创建, 启动, 运行逻辑, 以及空轮询bug的解决方法, 如何异步串行无锁化等问题的解决方法原创 2023-03-30 15:43:11 · 478 阅读 · 0 评论 -
[Netty] Netty自带的心跳机制 (十五)
[Netty] Netty自带的心跳机制 (十五)原创 2023-04-20 18:33:25 · 1172 阅读 · 0 评论 -
[Netty] FastThreadLocal (十四)
FastThreadLocal 相关源码分析, 结构分析原创 2023-04-17 18:40:00 · 776 阅读 · 0 评论 -
[Netty源码] Netty轻量级对象池实现分析 (十三)
[Netty源码] Netty轻量级对象池实现分析 (十三)原创 2023-04-16 14:25:01 · 601 阅读 · 0 评论 -
[Netty源码] 编码和解码相关问题 (十二)
[Netty源码] 编码和解码相关问题 (十二)原创 2023-04-15 21:27:19 · 736 阅读 · 0 评论 -
[Netty源码] ByteBufAllocator内存管理器相关问题 (十一)
[Netty源码] ByteBufAllocator内存管理器相关问题 (十一)原创 2023-04-14 19:16:41 · 677 阅读 · 0 评论 -
[Netty源码] ByteBuf相关问题 (十)
[Netty源码] ByteBuf相关问题 (十)原创 2023-04-12 20:41:11 · 762 阅读 · 0 评论 -
[Netty源码] ChannelHandler相关问题 (九)
ChannelHandler相关问题原创 2023-04-09 21:53:08 · 881 阅读 · 0 评论 -
[Netty源码] Pipeline相关问题 (八)
Pipeline的相关问题, 初始化以及添加和删除ChannelHandler原创 2023-04-08 18:17:24 · 484 阅读 · 0 评论 -
[Netty] Channel和ChannelFuture和ChannelFutureListener (六)
Channel和ChannelFuture和ChannelFutureListener原创 2023-04-05 17:33:45 · 1746 阅读 · 0 评论 -
[Netty] Netty与Os的零拷贝 (五)
Netty与os的零拷贝原创 2023-04-04 22:09:26 · 401 阅读 · 0 评论 -
select、poll、epoll之间的区别
文章目录1.时间复杂度2.区别3.epoll的好处4.总结4.1 支持一个进程所能打开的最大连接数4.2 FD剧增后带来的IO效率问题4.3 消息传递方式5.总结1.时间复杂度(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>原创 2021-09-30 16:20:35 · 659 阅读 · 0 评论 -
future相关
Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。虽然Future以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,只能通过阻塞或者轮询的方式得到任务的结果。阻塞的方式显然和我们的异步编程的初衷相违背,轮询的方式又会耗费无谓的CPU资源,而且也不能及时地得到计算结果,为什么不能用观察者设计模式当计算结果完成及时通知监听者呢?1.原创 2021-12-10 00:17:36 · 371 阅读 · 0 评论 -
理解高性能网络模型_IO模型
文章目录服务端处理网络请求I/O模型阻塞式I/O模型非阻塞式I/O模型I/O复用模型信号驱动式I/O模型异步I/O模型总结服务端处理网络请求首先看看服务端处理网络请求的典型过程:1、获取请求数据客户端与服务器建立连接发出请求,服务器接受请求(1-3)2、构建响应当服务器接收完请求,并在用户空间处理客户端的请求,直到构建响应完成(4)3、返回数据服务器将已构建好的响应再通过内核空间的网络I/O发还给客户端(5-7)服务器如何管理连接,获取输入数据服务器如何处理请求I/O模型阻塞调用与原创 2021-11-01 22:14:34 · 270 阅读 · 0 评论 -
零拷贝的实现原理
1、应用程序中调用read() 方法,这里会涉及到一次上下文切换(用户态->内核态),底层采用DMA(direct memory access)读取磁盘的文件,并把内容存储到内核地址空间的读取缓存区。2、由于应用程序无法读取内核地址空间的数据,如果应用程序要操作这些数据,必须把这些内容从读取缓冲区拷贝到用户缓冲区。这个时候,read() 调用返回,且引发一次上下文切换(内核态->用户态),现在数据已经被拷贝到了用户地址空间缓冲区,这时,如果有需要,应用程序可以操作修改这些内容。3、我们最终.原创 2021-11-01 21:53:01 · 540 阅读 · 0 评论 -
Netty为什么高性能
Netty作为异步事件驱动的网络,高性能之处主要来自于其I/O模型和线程处理模型,前者决定如何收发数据,后者决定如何处理数据文章目录异步非阻塞通信零拷贝零拷贝的实现原理基于buffer内存池无锁化的串行设计理念事件驱动模型Netty线程模型异步处理高效的并发编程高性能的序列化框架灵活的TCP参数配置能力异步非阻塞通信Netty的非阻塞I/O的实现关键是基于I/O复用模型,这里用Selector对象表示:Netty的IO线程NioEventLoop由于聚合了多路复用器Selector,可以同时并发处原创 2021-11-01 20:39:11 · 1809 阅读 · 1 评论 -
Netty_01_最简单的服务器与客户端之间的交互
Server:public class HelloServer { public static void main(String[] args) { // 服务器端启动器,将下面的组件进行启动 new ServerBootstrap() // 2.BossEventGroup, WorkerEventGroup // 检查IO事件 .group(new NioEventL原创 2021-10-31 16:14:56 · 302 阅读 · 0 评论