1概要設(shè)計

Kafka SocketServer是基于Java NIO來開發(fā)的,采用了Reactor的模式,其中包含了1個Acceptor負責(zé)接受客戶端請求,N個Processor負責(zé)讀寫數(shù)據(jù),M個Handler來處理業(yè)務(wù)邏輯。在Acceptor和Processor,Processor和Handler之間都有隊列來緩沖請求。

1.1 kafka.network.Acceptor

這個類繼承了AbstractServerThread,實現(xiàn)了Runnable接口,因此它是一個線程類。它的主要職責(zé)是監(jiān)聽客戶端的連接請求,并建立和客戶端的數(shù)據(jù)傳輸通道,然后為這個客戶端指定一個Processor,它的工作就到此結(jié)束,這樣它就可以去響應(yīng)下一個客戶端的連接請求了。

它的run方法的主要邏輯如下:

  1. 首先在ServerSocketChannel上注冊O(shè)P_ACCEPT事件:serverChannel.register(nioSelector, SelectionKey.OP_ACCEPT)

  2. 然后開始等待客戶端的連接請求:

    延伸閱讀

    學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式