Netty (code-demo)

简介: Netty code

Netty

#服务端

#客户端
EventLoop
EventLoopServer
EventLoopClient

Java

@Slf4j

publicclassEventLoopClient{

publicstaticvoidmain(String[]args)throwsInterruptedException{

// 1.启动类

Channelchannel=newBootstrap()

// 2.添加EventLoop

.group(newNioEventLoopGroup())

// 3.选择客户端channel实现

.channel(NioSocketChannel.class)

// 4.添加处理器

.handler(newChannelInitializer<NioSocketChannel>(){

                   @Override//连接初始化调用

protectedvoidinitChannel(NioSocketChannelch)throwsException{

ch.pipeline().addLast(newStringEncoder());

}

//5.链接到服务器

})

.connect(newInetSocketAddress("localhost",8080))

.sync()

.channel();

System.out.println(channel);

System.out.println("");

}

}

SO_BACKLOG

ByteBuf 源码

Java

// 池化技术

static{

StringallocType=SystemPropertyUtil.get(

"io.netty.allocator.type",PlatformDependent.isAndroid()?"unpooled" : "pooled");

allocType=allocType.toLowerCase(Locale.US).trim();


ByteBufAllocatoralloc;

if("unpooled".equals(allocType)){

alloc=UnpooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: {}",allocType);

}elseif("pooled".equals(allocType)){

alloc=PooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: {}",allocType);

}else{

alloc=PooledByteBufAllocator.DEFAULT;

logger.debug("-Dio.netty.allocator.type: pooled (unknown: {})",allocType);

}


DEFAULT_ALLOCATOR=alloc;

//是否使用堆内存  默认采用直接内存

// We should always prefer direct buffers by default if we can use a Cleaner to release direct buffers.

DIRECT_BUFFER_PREFERRED=CLEANER!=NOOP

&&!SystemPropertyUtil.getBoolean("io.netty.noPreferDirect",false);

if(logger.isDebugEnabled()){

logger.debug("-Dio.netty.noPreferDirect: {}",!DIRECT_BUFFER_PREFERRED);

}

目录
相关文章
|
2月前
|
自然语言处理 前端开发 JavaScript
前端组件库——Element Plus知识点大全(三)
教程来源 https://yyvgt.cn/category/jiushige.html 本文详解Element Plus性能优化与国际化实践:通过按需引入(体积降60%+)、代码分割、骨架屏、组件懒加载四大策略显著提升首屏速度;并借助el-config-provider轻松实现中英文等多语言切换,助力构建高性能、国际化的企业级Vue 3应用。
|
3月前
|
数据库 决策智能
多 Agent 验证架构实战:从输出评分到过程验证
2026年生产级Agent系统最典型失败:多步流水线中错误静默累积,最终输出流畅却全错。本文详解四种验证模式——输出评分、Reflexion、对抗辩论与过程验证,揭示其适用场景、失效边界及真实成本(验证器用小模型可降本10倍),强调验证层是演示与落地的分水岭。
260 0
多 Agent 验证架构实战:从输出评分到过程验证
|
2月前
|
人工智能 数据可视化 JavaScript
剪视频不用再开 PR 的 AI 工作流
本文对比OpenClaw三种部署方式(本地、全托管、阿里云轻量自托管),重点推荐后者:兼顾7×24在线、数据自主、灵活扩展与开箱即用。结合真实视频剪辑场景,详解字幕生成、批量处理、竖屏裁切等高效AI功能,适合Vlog/知识类博主提效减负。
|
3月前
|
机器学习/深度学习 人工智能 语音技术
阿里云 GPU 服务器多少钱?AI 算力租赁价格 + 推理训练场景一览
本文汇总阿里云GPU服务器最新租赁价格(含A10/V100/T4/P4/P100等卡),涵盖按小时、月付、年付三种计费模式,详列GN7i、GN6v等主流实例规格及对应CPU/内存配置、优惠价与适用场景(训练、推理、渲染等),助力AI开发者低成本高效选型。(239字)
892 12
|
前端开发
架构学习——业务架构图
架构学习——业务架构图
990 0
|
算法 5G 测试技术
5G的功能架构和灵活性 | 《5G移动无线通信技术》之十二
本节首先介绍了5G的高级要求又介绍了5G的功能架构和其灵活运用的性能。
5G的功能架构和灵活性 | 《5G移动无线通信技术》之十二
|
机器学习/深度学习 存储 人工智能
揭秘工业级大规模GNN图采样
互联网下的图数据纷繁复杂且规模庞大,如何将GNN应用于如此复杂的数据上呢?答案是图采样。结合阿里巴巴开源的GNN框架Graph-Learn(https://github.com/alibaba/graph-learn),本文重点介绍GNN训练过程中的各种图采样和负采样技术。
4056 0
揭秘工业级大规模GNN图采样
|
前端开发 应用服务中间件 Linux
Halo博客搭建
Halo博客搭建
1000 1
|
数据挖掘 Java 索引
【Nowcoder牛客刷题记录】——Python数据分析(一)
【Nowcoder牛客刷题记录】——Python数据分析(一)
1119 1
|
存储 安全 Linux
阿里云服务器搭建 图文详细教程
首先先确定端口号是否开放
1982 0