Netty中的引導類Bootstrap

爬蜥發表於2018-05-15

Bootstrap是用來組織Netty的各個結構(pipeline,handler,eventloop),並使他們執行起來的類結構。分成兩塊,一個是客戶端引導類Bootstrap,只用1個channel來處理所有的網路互動,另一個是服務端的ServerBootstrap,它提供一個父channel來接受客戶端的請求,然後父channel建立多個子channel來用於的通訊

Netty中的引導類Bootstrap

Netty可以如何來支撐一個代理伺服器,接收客戶端請求的同時,又呼叫自己內部的服務?

這種業務場景首選需要一個伺服器用於接收請求,同時新建一個客戶端來向下遊發起請求,Netty版的實現可以通過共享eventLoop來實現執行緒公用,既不需要建立額外的執行緒也不需要在接受請求的子channel和客戶端channel之間互動資料時的上下文切換

Netty中的引導類Bootstrap

這中型別解決方案Netty一般準則是複用eventLoop

如何一次新增多個ChannelHandler?

自定義繼承ChannelInitiallizer,過載它的initChannel方法獲取pipeline,然後呼叫addLast等一些列方法來一個一個新增自己的handler

ChannelOption是幹什麼的?

配置channel設定項用,當作用於引導時,它將適用於當前引導所建立的所有channel

如果要在netty的生命週期之外使用相關屬性和資料,可以怎麼做?

使用AttributeMap和AttributeKey<T>,他們可將任何型別的資料項與客戶端和服務端的channel相關聯



相關文章