Pregunta

Nuestra aplicación tiene un nodo servidor que los delegados trabajan a numerosos nodos de trabajadores que son actores remotos. Se espera que esta aplicación escala aumentando el número de nodos de trabajadores.

Estamos usando AKKA 1.3-RC4 y apostamos hacer algo mal porque notamos lo siguiente:

1> Se abren nuevos sockets cuando se envían tareas a los nodos de los trabajadores desde el servidor. Los enchufes se cierran una vez que se completa la tarea. ¿Existe algún beneficio / razón por la cual los enchufes no siempre se mantienen abiertos? ¿Hay algún conf de que necesitemos ajustar?

2> Cuando enumeramos el número de descriptores de archivos abridos por el PID del proceso del servidor, el número se dispara proporcional al número de enchufes abiertos (totalmente esperados). El objetivo de esta aplicación es escalar en grandes (globales) engrasas de cómputo, sin embargo, una vez que se alcanza el límite de los descriptores de archivos, el nodo del servidor no puede abrir sockets para más nodos de trabajadores. Me pregunto si deberíamos cambiar el diseño y el enfoque de otra manera.

Sin embargo, otra cosa que estamos considerando activamente es mudarme a Akka 2, sin embargo, no estoy seguro de si tiene una mejor manera de resolver este tipo de problema.

Gracias !

¿Fue útil?

Solución

  1. Puede aumentar el tiempo de espera de lectura para las conexiones, para mantenerlas abiertas más largas.
  2. Debe cambiar a 1.3-RC6, ya que soluciona algunos problemas de rendimiento relacionados con el control remoto
  3. Akka 2.0 Be predeterminado resusa las conexiones entrantes para mensajes salientes, lo que lleva a una escalabilidad mucho mejor para su caso de uso

Espero que esto ayude,

Saludos, √

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top