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