W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Bootstrapping是什么?它在Netty中有什么作用呢?Bootstrapping(引導) 是出現(xiàn)在Netty 配置程序的過程中,Bootstrapping在給服務器綁定指定窗口或者要連接客戶端的時候會使用到。
Bootstrapping 有以下兩種類型:
不管程序使用哪種協(xié)議,創(chuàng)建的是一個客戶端還是服務器,“引導”都是必須要使用到的。
面向連接 vs. 無連接
請記住,這個討論適用于 TCP 協(xié)議,它是“面向連接”的。這樣協(xié)議保證該連接的端點之間的消息的有序輸送。無連接協(xié)議發(fā)送的消息,無法保證順序和成功性
兩種 Bootstrapping 之間有一些相似之處,也有一些不同。Bootstrap 和 ServerBootstrap 之間的差異如下:
Table 3.1 Comparison of Bootstrap classes
分類 | Bootstrap | ServerBootstrap |
網(wǎng)絡(luò)功能 | 連接到遠程主機和端口 | 綁定本地端口 |
EventLoopGroup 數(shù)量 | 1 | 2 |
Bootstrap用來連接遠程主機,有1個EventLoopGroup
ServerBootstrap用來綁定本地端口,有2個EventLoopGroup
事件組(Groups),傳輸(transports)和處理程序(handlers)分別在本章后面講述,我們在這里只討論兩種"引導"的差異(Bootstrap和ServerBootstrap)。第一個差異很明顯,“ServerBootstrap”監(jiān)聽在服務器監(jiān)聽一個端口輪詢客戶端的“Bootstrap”或DatagramChannel是否連接服務器。通常需要調(diào)用“Bootstrap”類的connect()方法,但是也可以先調(diào)用bind()再調(diào)用connect()進行連接,之后使用的Channel包含在bind()返回的ChannelFuture中。
一個 ServerBootstrap 可以認為有2個 Channel 集合,第一個集合包含一個單例 ServerChannel,代表持有一個綁定了本地端口的 socket;第二集合包含所有創(chuàng)建的 Channel,處理服務器所接收到的客戶端進來的連接。下圖形象的描述了這種情況:
Figure 3.2 Server with two EventLoopGroups
與 ServerChannel 相關(guān) EventLoopGroup 分配一個 EventLoop 是 負責創(chuàng)建 Channels 用于傳入的連接請求。一旦連接接受,第二個EventLoopGroup 分配一個 EventLoop 給它的 Channel。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: