SocketServer相当于一个电信服务中心,Acceptor 线程相当于一个接线人员,负责接线。
SocketChannel相当于一个建立好的传声筒,Processor相当于客服人员,负责处理用户通过SocketChannel这个传声筒发送过来的技术问题(读写请求)。Processor并不懂技术(如何处理读写请求),所以当他监听到SocketChannel发送过来的技术问题(请求请求)时候,他把这个请求放到RequestChannel中去,RequestChannel相当于是客服链接后台专业电信技术人员的一条传声筒。
后台的专业电信技术人员叫KafkaRequestHandler,后台由于不止一个专业电信技术人员,他们共同组成了一个技术服务组(KafkaRequestHandlerPool)。这里是真正处理Socket发来的请求的地方。技术人员(KafkaRequestHandler)从这个RequestChannel中取出一个技术问题。查找专业技术文档库(调用KafkaApis接口)完成这个问题,然后把答案(响应)写到RequestChannel响应队列中去。Processor看到RequestChannel中有答案的时候,就会把这个答案通过SocketChannel这个传声筒发送给提问的用户。