首页 > 其他分享 >netty 记录

netty 记录

时间:2024-10-04 14:35:48浏览次数:8  
标签:netty nio 记录 server future 监听 channel

 

采用nio:同步非阻塞的io模型

bio: 处理多个客户端请求时,每个客户端连接需要一个独立的线程来处理 I/O 操作,会大量消耗资源

 

nio组成: buffer ,selector,channel

nio采用selector,监听socket channel 上是否有读写操作的事件,然后才执行读写

 

netty核心组件

 

bytebuf:网络传输使用的字节容器

channel(管道),channelPipeline

EventLoop(事件循环)

EventLoopGroup(事件循环组)

 

工作流程如图

 

details:

 

bootstrap,server bootstrap  对应client和server的启动类:

  • ServerBootstrap:
    • 需要两个线程组( boss group 和 worker group , 对应 接收连接和IO处理
    • 监听一个端口
  • Bootstrap
    • 连接server主机和端口

 

channel:

网络接口的抽象,进行io操作,

  NioServerSocketChannel , NioSocketChannel

 

 

EventLoop:

  监听网络事件,调用处理器进行IO处理

  可以绑定多个channel,⚠️是单线程操作

 

channelpipeline: 

  是channel的一部分(1 : 1),pipeline中包含多个channelHandler , 呈现一个链表形状,通过 handlercontext管理

 

channelfuture: 异步操作的结果,implements future<T>

 

ChannelFuture future = channel.writeAndFlush(message);
future.addListener(new ChannelFutureListener() {
    @Override
    public void operationComplete(ChannelFuture f) throws Exception {
        if (f.isSuccess()) {
            System.out.println("Message sent successfully!");
        } else {
            System.err.println("Failed to send message: " + f.cause());
        }
    }
});

 

标签:netty,nio,记录,server,future,监听,channel
From: https://www.cnblogs.com/towboa/p/18446530

相关文章

  • 【训练记录】2024年莆田市高中信息学奥赛国庆集训CSP-S提高组(第四天场外)
    训练情况rk#1\(100+100+100+100=400\)赛后反思因为满分AK了,就不需要反思了A题显然我们想要选的最多,我们优先选\(a_i\)小的,所以我们对\(a_i\)从小到大排序,再求一个前缀和,再使用二分即可#include<bits/stdc++.h>#defineintlonglongusingnamespaces......
  • 【牛客训练记录】2024牛客国庆集训派对day3
    赛后反思还是只开出来一题TATH题构造一个01矩阵,想要横竖斜三个数都不同,好像方法有很多,我们考虑交错着放010101011010101001010101上面这种长度为\(1\)的01显然不行,因为斜着也算,所以我们考虑构造长度为\(2\)的01,例如00111100这样001100111100110000110011110......
  • 国庆 CF 做题记录
    CF2002F2考虑F1,当\(n=m\)时,我们默认\(l\gef\)。此时我们可以发现一个比较正确的策略:先从\((0,0)\)跳到满足\(p\)是质数的\((p,0)\)处,然后再跳到满足\(q\)是小于\(p\)的质数的\((p,q)\)处,然后再暴力BFS。不会证明,可以达标找出这样的结论。当\(n>m\)时,注......
  • tmux指令记录
    tmux除了终端复用外,还有个作用是当远程ssh之后,如果要临时退出,可以通过tmux保持当前会话进程。特别是需要较长时间的下载或者cmake的时候可用。以下内容来源于AI:tmux是一个终端复用器,它允许用户在一个终端窗口中创建多个会话,并且每个会话可以包含多个窗口和窗格(pane)。这使得你可......
  • 2024.10.[2, 3]训练记录
    10.2上午noip模拟比赛是8:00开始的,人是8:40起床的。T1猜了结论,秒了。结论是,一开始按照倒序排,连续是\(1\)的段\(reverse\)成正序。这样逆序对最多。感觉做法太简单\(O(n\logn)\)肯定不放。于是想了\(O(n)\)做法。最开始有\(\dfrac{n*(n-1)}{2}\)个逆序对,按段考虑......
  • 一、初识Netty
    Netty是快速开发高性能,高扩展性的网络服务器和客户端提供的异步框架。目标有:快速轻松开发,不仅能快速轻松开发tcp,udp程序,还能开发ftp,http外的其他应用层协议。高性能,高扩展,基于Java的NIO设计了优秀的Reactor模式实现。这里选择Netty4版本。依赖如下:<dependency><gro......
  • 【牛客训练记录】2024牛客国庆集训派对day2
    赛后反思只开出来两题,好像水平就这样了TATI题给定一个排列,对于每项可以选择+1或者不加,求逆序对对数最小我们可以思考一下什么情况下可以减少最后答案的逆序对,对于\([4,3]\)或者\([2,1]\)这种情况,将第二个元素+1才能对答案的减少做出贡献,所以只要判断某一位的后面是否有那......
  • 10月做题记录
    10月做题记录✩trick✯会大部分,要\(tj\)提示✬会小部分/完全没想到,看了\(tj\)才会◈脑电波✡有某一算法的神秘通用性质⊗待补目录10月做题记录CF2018FSpeedbreakerCounting✬✩CF2018FSpeedbreakerCounting✬✩非常牛题目,就是学\(whk\)学傻了,乘法过后的取......
  • 2024.10 - 做题记录与方法总结
    赏赐的是CCF,收回的也是CCF-《CCF圣经》2024/10/01国庆快乐!P10856【MX-X2-T5】「CfzRound4」Xor-Forces题面:题目描述给定一个长度为\(n=2^k\)的数组\(a\),下标从\(0\)开始,维护\(m\)次操作:操作一:给定\(x\),设数列\(a'\)满足\(a'_i=a_{i\oplusx}\),将\(a\)......
  • 计算机网络 八股记录
    http请求报文,响应报文 301MovedPermanently 和 404NotFound301,服务器会返回新的URL,客户端应该用新的URL进行访问。 502错误意味着代理服务器和上游服务器无法通信,比如上游服务器故障504GatewayTime-out上游服务器响应超时 HTTP的Keep-Alive参数--->长......