no podían primavera Webflux o no el bloqueo de patrón de ser malo para el escalado

katiex7:

Tengo que estar con hilos sin bloqueo, no necesitamos tener la expansión del hilo en función de N solicitudes simultáneas, sino más bien que poner nuestras tareas en un solo ciclo de eventos en nuestro modelo de programación web reactiva.

Sí, eso puede ayudar, pero dado que el bucle de eventos es una cola, lo que si es la primera tarea a procesar bloques para siempre? A continuación, el bucle de eventos nunca va a progresar y así terminar de las respuestas y la transformación distintos de cola más tareas. Sí, los tiempos de espera son probablemente posible, pero no puedo envolver mi cabeza alrededor de cómo el bucle de eventos puede ser una buena solución.

Digamos que tiene 3 tareas que se llevan a 3 segundos de espera para IO y ejecutar cada ejecuciones y consiguieron enviado a la cola de eventos. Entonces todavía se toman 9 segundos para poder ser procesado y también para ejecutar una vez resuelto IO. En el caso de hacer hilos que bloque, esto habría resuelto en 3 segundos desde que se ejecutan simultáneamente.

¿Dónde puedo ver un beneficio es si el bucle de eventos no es realmente una cola y al ocurrir una señal de que una tarea está lista para ser procesada, se envía esa tarea a procesar. En ese caso, sin embargo, esto significaría que el orden de ejecución de la tarea no se mantiene y también cada tarea tiene que estar funcionando todavía un hilo con el fin de ser capaz de decir cuando se resuelva IO.

Tal vez no soy la comprensión del ciclo de eventos y manejar correctamente hilo. ¿Puede alguien me corrija la gana porque parece que este patrón Reactor parece que las cosas posiblemente peor.

Por último, sobre las solicitudes de X en la primavera del reactor, no solamente 1 hilo se crean para ejecutar los controladores en lugar de los hilos tradicionales X? En ese caso, si alguien accidentalmente escribió el bloqueo de código, no logra que la media de cada una las solicitudes posteriores conseguir en cola?

AlexLiesenfeld:

No es una buena idea usar el bucle de eventos para las tareas de ejecución larga. Esto se considera un anti-patrón. Por lo general, se utiliza simplemente para recoger rápidamente los eventos inminentes, pero no está realizando los trabajos asociados a estos eventos si el trabajo bloquearía el bucle de eventos notablemente. Que se quiere utilizar una agrupación de hebras separadas para ejecutar tareas de larga duración. Por lo que el bucle de eventos por lo general sólo se iniciará el trabajo usando asíncrono y por lo tanto no bloqueante estructuras (o en realidad hacer el trabajo sólo si se puede hacer muy rápidamente) y pasar las tareas más pesadas y posiblemente bloqueando a un grupo de subprocesos por separado (para los cálculos intensivos de CPU ) o para el sistema operativo (tales como tampones de datos que se envían a través de la red).

Además, no se deje engañar por el hecho de que sólo un hilo se ocupa de los acontecimientos, es muy rápido y suele ser suficiente, incluso para las aplicaciones más exigentes. Plataformas como NodeJS o marcos como Netty (utilizados en Akka, Jugar con el marco, Apache Cassandra, etc.) están utilizando un bucle de eventos en su corazón con gran éxito. Uno sólo debe ser consciente de la realidad, que la realización de operaciones de bloqueo en el interior del bucle de eventos es generalmente una mala idea.

Por favor, eche un vistazo a algunos de estos puestos para más información:

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=118661&siteId=1
Recomendado
Clasificación