java netty socket_Java-彻底弄懂netty-原来netty是这样启动的-知识铺
知識(shí)鋪: 致力于打造輕知識(shí)點(diǎn),持續(xù)更新每次的知識(shí)點(diǎn)較少,閱讀不累。不占太多時(shí)間,不停的來喚醒你記憶深處的知識(shí)點(diǎn)。
一、捋順netty開啟方式
最簡(jiǎn)單開啟一個(gè)server nio
開啟具體流程:
1.1 創(chuàng)建兩個(gè)NioEventLoopGroup對(duì)象
這兩個(gè)對(duì)象是netty調(diào)度模塊,也相對(duì)于傳統(tǒng)I/O編程中的大線程組。 mainGroup:監(jiān)聽端口,創(chuàng)建新連接的線程組。 workerGroup: 處理每條鏈路上的數(shù)據(jù)讀寫線程組。
mainGroup: 日常例子,一個(gè)研發(fā)項(xiàng)目主管,他只管接任務(wù),不停的把任務(wù)交給助手:
workerGroup:相對(duì)于助手,是任務(wù)真正實(shí)際的操刀手。
1.2 創(chuàng)建serverBootstrap 對(duì)象
啟動(dòng)服務(wù)端,需要這個(gè)來來啟動(dòng),也相對(duì)于引導(dǎo)類。
1.3 關(guān)聯(lián)主線程組和工作線程組
serverBootstrap.group(mainGroup,workerGroup) 這種方式把兩個(gè)處理線程組關(guān)聯(lián)到啟動(dòng)類上。
1.4 指定服務(wù)端IO模型
serverBootstrap.channel(NioServerSocketChannel.class) 這種方式來指定服務(wù)端是什么I/O模型,這里選擇的Nio的I/O模型。 如果需要指定為BIO,只需替換為 OioServerSocketChannel.class即可。
1.5 指定服務(wù)端連接后續(xù)處理器
serverBootstrap.childHandler() 這里添加的是ChannelInitializer 可以定義每條鏈路連接上來后,每條連接的數(shù)據(jù)讀寫,業(yè)務(wù)處理邏輯。
serverBootstrap.handler() 這里添加的也是ChannelInitializer ,這里定義的是啟動(dòng)處理接口。
這里很好說明 handler 與 childHandler 的區(qū)別。
還有個(gè)泛型參數(shù):NioSocketChannel,這個(gè)類是Netty的Nio操作類型的連接。
1.6 bind(8000)
綁定本地端口 8000
總結(jié)
以上是生活随笔為你收集整理的java netty socket_Java-彻底弄懂netty-原来netty是这样启动的-知识铺的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌Pixel 7a手机曝光 或将在Go
- 下一篇: 金钱能买到幸福?越皱眉越悲伤?科学家告诉