图解原理
文字解读
ServerSocketChannel
组件会监听服务提供者的端口号,服务提供者会有一个Accpetor线程,线程当中会有一个 Selector
组件去轮询 ServerSocketChannel
的网络事件,轮询 ServerSocketChannel
是否监听到有服务消费者要与服务提供者建立网络连接。
每个服务消费者都会有一个netty客户端,当需要与服务提供者建立连接时,就请求服务提供者的端口号,此时 ServerSocketChannel
就会监听到服务消费者建立的网络连接的请求, Selector
也能从轮询中知道有哪些服务消费者的网络连接请求事件。
服务消费者建立好的连接,会有一个 SocketChannel
(每一个 SocketChannel
代表的就是一个服务消费者与服务提供者建立的一个网络连接)。
网络连接会按照一定规则分配给Processor线程
,每个 Processor线程
也会有一个 Selector
(多路复用轮询组件)组件,不断轮询 SocketChannel
对应的服务消费者的服务请求有没有过来。然后通过 Processor线程
解析请求,交给服务提供者对应的接口去处理。
服务提供者返回相应结果数据,就会通过 SocketChannel
返回给服务消费者,服务消费者同样也会有 SocketChannel
去接收网络响应事件,然后在 Processor线程
下的 Selector
去轮询查看 SocketChannel
是否接收了网络响应事件,如果接收了,就会去解析响应的数据,然后在服务消费者的相关代码里返回结果数据。
ServerSocketChannel
负责监听服务提供者的端口号,监听服务消费者发起的建立网络连接的请求。SocketChannel
每一个 SocketChannel
代表的就是一个服务消费者与服务提供者建立的一个网络请求Selector
Selector
多路复用轮询组件,轮询查看 SocketChannel
是否有服务消费者的网络请求过来。Acceptor线程
主要负责处理网络连接建立的请求。Processor线程
主要负责处理网络请求和网络响应。