Red de conocimiento informático - Problemas con los teléfonos móviles - Optimización del grupo de subprocesos de malla en Spring Cloud Gateway

Optimización del grupo de subprocesos de malla en Spring Cloud Gateway

Recientemente, los estudiantes probaron el sistema. Informar un problema: casi todas las interfaces no son muy buenas. Incluso algunas interfaces que son solo consultas de clave principal y tienen una pequeña cantidad de datos son iguales. Durante la investigación: omitiendo la puerta de enlace y realizando una prueba de estrés directamente a través de la IP del servidor de destino, se descubrió que el rendimiento mejoró significativamente. El juicio inicial es que se trata de un problema de puerta de enlace. Revisé la información en Internet y encontré un punto de optimización, que es la configuración del grupo de subprocesos de Netty.

Para establecer la cantidad de subprocesos que pueden funcionar simultáneamente, debe configurar el parámetro reactor.netty.ioWorkerCount en netty. Este parámetro no se puede configurar directamente y debe configurarse a través de System.setProperty, por lo que podemos crear la siguiente clase de configuración para configurar este parámetro:

Mi versión aquí es reactor-netty-core-1.0.3. Si la versión es diferente, la clave del parámetro puede ser diferente. Puede consultar la clave escrita en LoopResources.

Tiempo de ejecución. obtener tiempo de ejecución(). Los procesadores disponibles () obtienen la cantidad de subprocesos del núcleo de la CPU, es decir, los recursos informáticos, no la cantidad de núcleos físicos de la CPU. Para una CPU que admite Hyper-Threading, un solo procesador físico equivale a tener dos procesadores lógicos y puede ejecutar dos subprocesos al mismo tiempo.

Echemos un vistazo a lo que hace DefaultLoopResources.

Como puedes ver, si no hay configuración. Netty no tiene elección de grupo de hilos. Combinado con el análisis del modelo de reactor, se puede encontrar que esta situación tiene un impacto en la eficiencia del tratamiento. Además, la configuración con la mayor cantidad de núcleos de CPU obviamente no puede reutilizar recursos de hardware.