1概要设计
Kafka SocketServer是基于Java NIO来开发的,采用了Reactor的模式,其中包含了1个Acceptor负责接受客户端请求,N个Processor负责读写数据,M个Handler来处理业务逻辑。在Acceptor和Processor,Processor和Handler之间都有队列来缓冲请求。
1.1 kafka.network.Acceptor
这个类继承了AbstractServerThread,实现了Runnable接口,因此它是一个线程类。它的主要职责是监听客户端的连接请求,并建立和客户端的数据传输通道,然后为这个客户端指定一个Processor,它的工作就到此结束,这样它就可以去响应下一个客户端的连接请求了。
它的run方法
的主要逻辑如下:
首先在ServerSocketChannel上注册OP_ACCEPT事件:
serverChannel.register(nioSelector, SelectionKey.OP_ACCEPT)
然后开始等待客户端的连接请求:
网友评论