java netty socket_Java-彻底弄懂netty-原来netty是这样启动的-知识铺
知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。
一、捋顺netty开启方式
最简单开启一个server nio
开启具体流程:
1.1 创建两个NioEventLoopGroup对象
这两个对象是netty调度模块,也相对于传统I/O编程中的大线程组。 mainGroup:监听端口,创建新连接的线程组。 workerGroup: 处理每条链路上的数据读写线程组。
mainGroup: 日常例子,一个研发项目主管,他只管接任务,不停的把任务交给助手:
workerGroup:相对于助手,是任务真正实际的操刀手。
1.2 创建serverBootstrap 对象
启动服务端,需要这个来来启动,也相对于引导类。
1.3 关联主线程组和工作线程组
serverBootstrap.group(mainGroup,workerGroup) 这种方式把两个处理线程组关联到启动类上。
1.4 指定服务端IO模型
serverBootstrap.channel(NioServerSocketChannel.class) 这种方式来指定服务端是什么I/O模型,这里选择的Nio的I/O模型。 如果需要指定为BIO,只需替换为 OioServerSocketChannel.class即可。
1.5 指定服务端连接后续处理器
serverBootstrap.childHandler() 这里添加的是ChannelInitializer 可以定义每条链路连接上来后,每条连接的数据读写,业务处理逻辑。
serverBootstrap.handler() 这里添加的也是ChannelInitializer ,这里定义的是启动处理接口。
这里很好说明 handler 与 childHandler 的区别。
还有个泛型参数:NioSocketChannel,这个类是Netty的Nio操作类型的连接。
1.6 bind(8000)
绑定本地端口 8000
java netty socket_Java-彻底弄懂netty-原来netty是这样启动的-知识铺相关推荐
- 自学Java day24 一篇文章弄懂mySQL基础命令 从jvav到架构师
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统. 本篇采用 m ...
- java netty能做什么_开发:Netty快速入门,一看就懂!
很早以前就写过关于 Netty 的使用,最近发现还有网友在看之前写的那篇 Netty 文章,个人感觉那时候写的很粗糙,怕影响同行的阅读质量,所以决定重新写一些关于 Netty 的文章,补充以前的不足. ...
- 一文弄懂-《Scalable IO In Java》
目录 一. <Scalable IO In Java> 是什么? 二. IO架构的演变历程 1. Classic Service Designs 经典服务模型 2. Event-drive ...
- 一张图弄懂java线程的状态和生命周期
转载自 一张图弄懂java线程的状态和生命周期 上图是一个线程的生命周期状态流转图,很清楚的描绘了一个线程从创建到终止的过程. 这些状态的枚举值都定义在java.lang.Thread.State下 ...
- deque stack java_一文弄懂java中的Queue家族
简介 java中Collection集合有三大家族List,Set和Queue.当然Map也算是一种集合类,但Map并不继承Collection接口. List,Set在我们的工作中会经常使用,通常用 ...
- java netty 面试_Java 200+ 面试题补充② Netty 模块
让我们每天都能看到自己的进步.老王带你打造最全的 Java 面试清单,认真把一件事做到最好. 1.Netty 是什么? Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发 ...
- 一文弄懂Java中线程池原理
在工作中,我们经常使用线程池,但是你真的了解线程池的原理吗?同时,线程池工作原理和底层实现原理也是面试经常问的考题,所以,今天我们一起聊聊线程池的原理吧. 为什么要用线程池 使用线程池主要有以下三个原 ...
- java接口防抖_彻底弄懂节流和防抖
节流和防抖 这两个东西,你肯定听过,就是两种优化浏览器性能的手段.相关文章你肯定也看过,如果还是不太清楚,没关系,看完这篇短文,相信你能轻松理解其中差别. 防抖(deounce) 我们先说防抖吧,这里 ...
- 一文弄懂Flink网络流控及反压
一文弄懂Flink网络流控及反压 1. 为什么需要网络流控? 2. 网络流控的实现:静态限速 3. 网络流控的实现:动态反馈/自动反压 3.1 案例一:Storm 反压实现 3.2 案例二:Spark ...
最新文章
- 第3关:4位快速加法器设计
- centos 日志切割_CentOS下的日志切割
- 如何删除chrome地址栏里面曾经输错的地址
- 对抗新冠也用「梯度下降」,进化生物学家靠这个预测病毒进化方向
- 大学计算机基础python学多久_怎么自学python,大概要多久?
- 表单开发(二):获取单选按钮,多行文本框,下拉菜单,捆绑元素数据,用户注册
- react项目启动invalid host header问题
- Linux打开rtf文档,在linux下设置开机自动启动程序的方法_精品.rtf
- Day-17: 网络编程
- android gradle错误,Android studio gradle错误与顶级异常
- 六级词汇打卡第二天(二)
- python有什么用-我们为什么要选择学习python?学习python有什么用?
- 可以批量把Word文件转成JPG的软件工具
- 积性函数是什么 超级明白的敷衍介绍
- Android蓝牙系统框架和代码架构
- python画一个爱心
- Shader消散特效(如回城)
- Hexo+GitHubPages搭建个人博客网站
- linux date 计算时间差,linux shell date 时间运算以及时间差计算方法
- 生成带参数的微信二维码
热门文章
- change all day checkbox in Fiori ui
- where is path tag generated
- OPA 5 - CreateButtonTest creates CreateButtonSteps
- SAP UI5 sap.m.ListMode - ModesingleSelectMaster
- 如何查看某个js 变量 runtime 类型
- 通过debug 修改SE16里的table content
- 检测Product 被其他business transaction 引用的小程序
- 在product search result里点击某个product出现白屏问题
- 一个最简单的例子学会使用nodejs redis库进行数据库操作
- SAP CDS view里,什么时候用left join,什么时候用association