Modelo multiproceso Reactor de Netty, NioEventLoop, introducción a ChannelPipeline
Si buscas "Netty de alto rendimiento y fácil de usar" en Google, lo más probable es que veas esta imagen entre una gran cantidad de artículos encontrados, además de las palabras clave
NIO, Reactor Modelo de subprocesos múltiples, memoria fuera del montón, sin bloqueo en serie asíncrono, canalización. Después de leer estos artículos, puede tener una comprensión general de los principios de Netty, pero ¿cómo los implementa Netty? Este artículo explicará Netty de manera simple. como posible Implementación de subprocesos múltiples en Reactor. Si hay algún error, gracias por señalarlo.
El selector es un componente importante de NIO Channel y se puede registrar en Selector Channel. le interesa al registrarse:
Canal, canal, para facilitar la comprensión, lo divido en tres categorías
El modelo de subprocesos múltiples de Reactor se puede dividir en tres partes p>
mainReactor es responsable del acceso del cliente
El aceptador es responsable de entregar la conexión a la que se accede al subReactor
El subReactor es responsable de leer y escribir la conexión p>
Conocimiento clave:
Diagrama de flujo de operación
Conocimiento clave:
La idea de diseño de ChannelPipeline es el patrón de diseño de cadena de responsabilidad, que es una lista enlazada bidireccional compuesta por ChannelHandlerContext, con la cabeza y la cola fijadas en HeadContext y TailContext. Existen como centinelas. Cuando agregamos un ChannelHandler Al llegar a ChannelPipeline, se empaquetará en ChannelHandlerContext y luego se agregará
Propagación de eventos entrantes
El cliente envía un mensaje al servidor. Esta dirección de flujo se llama entrante. El mensaje comenzará desde Head y se pasará de izquierda a derecha hasta Tail. la operación final
propagación de eventos salientes
El servidor envía información al cliente. Esta dirección de flujo se llama saliente. El mensaje comenzará desde Tail y pasará por la transferencia de derecha a izquierda. conoce el Head y el Head realiza la operación final
Transferencia de excepción
Cuando una operación de ChannelHandler genera una excepción, se transferirá del controlador a Tail. la operación final Operación.
Para aprender Netty, es necesario comprender el modelo Reactor y combinarlo con la implementación de Netty. Cuando estaba aprendiendo Netty, fue porque no tenía un conocimiento profundo de esto. área, así que perdí mucho tiempo y fui ineficaz.** *Mian
/p/a9b2fec31fd1
/p/a9d030fec081
/p/2461535c38f3
https://juejin.im/post/5a126b146fb9a0450c490201