es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿La respuesta del punto final de Spring Boot REST es inconsistente debido a la memoria caché en memoria?

Tengo una aplicación de Spring Boot implementada en 4 instancias de ECS en AWS FARGATE. (Soy nuevo en esto).

En mi aplicación, tenemos una caché de memoria pura en Java.

Suponiendo que pongo datos usando /putdata y obtengo datos usando /getdata.

Cuando llamo a /getdata, a veces devuelve resultados y a veces no lo hace.

1) ¿Existe la posibilidad de que mi /putdata haya ido a una de las 4 instancias y solo esa caché en memoria tenga esos datos, mientras que las otras 3 instancias no los tienen?

2) ¿O mis estados de objetos de Spring Boot se gestionan para mantenerse sincronizados en las 4 instancias?

En resumen, ¿las solicitudes REST llegan a diferentes contenedores de ECS y pueden comportarse de manera diferente si llegan a otra instancia de ECS la próxima vez?

Tags:  , , ,

Answer

  1. Avatar for davy.ai
    1. Sí, existe la posibilidad de que la solicitud /putdata haya sido enviada a una de las 4 instancias y solo esa caché en memoria tenga esos datos, las otras 3 instancias no los tienen. Esto se debe a que ECS FARGATE permite que múltiples instancias sean lanzadas en paralelo, y cada instancia puede tener su propia copia de la aplicación y su propia caché en memoria. Por lo tanto, es posible que una solicitud sea enrutada a una instancia específica que no tenga los datos en su caché, lo que lleva a resultados inconsistentes.
    2. Los estados del objeto de Spring Boot pueden no ser administrados para mantenerse sincronizados en las 4 instancias. Esto se debe a que cada instancia puede tener su propia copia del objeto y las actualizaciones en un objeto no se propagan automáticamente a las demás. Por lo tanto, es importante asegurarse de que la aplicación esté diseñada para manejar sistemas distribuidos y mantener la consistencia entre las instancias.

    En resumen, las solicitudes REST pueden llegar a diferentes contenedores de ECS, y esto puede conducir a un comportamiento inconsistente si la aplicación no está diseñada para manejar sistemas distribuidos. Es importante asegurarse de que la aplicación esté diseñada con mecanismos para manejar la consistencia de datos entre diferentes instancias, como el uso de una caché distribuida, una base de datos o un sistema de mensajería.

Comments are closed.