我正在试图理解netty是如何工作的,在阅读了一些文档后,我会看到我是否理解了事情是如何运作的。
基本上netty有一个事件周期,所以无论何时你进行一次调用它都会被序列化并且请求被下推到o / s级别,并且它使用epoll并等待一个事件发送回netty。
当操作系统生成netty订阅的事件时,netty会有一个触发的事件循环。
现在感兴趣的部分是,必须解析被触发的事件,并且客户端代码(或自定义代码)必须弄清楚这个事件的实际用户。
因此,例如,如果这是针对聊天应用程序,则在发送消息时,由客户端代码决定通过ajax将此消息发送给正确的用户。
这是否在高层次上正确概述了网络的运作方式?
BTW,当netty侦听通过epoll发送的事件时,这个事件循环是单线程还是从线程池中工作?答案 0 :(得分:3)
听起来对我不对。
Netty中有多个事件循环线程,但这并不意味着单个Channel的事件由多个事件循环线程处理。 Netty选择一个线程并将其分配给Channel。一旦分配,与频道相关的所有事件都由挑选的线程处理。
它也不一定意味着事件循环线程只处理一个Channel。事件循环线程可以处理多个通道。