Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

107
Vistas
Cómo mantener la seguridad de subprocesos con múltiples pods de un microservicio Spring Data Reactive Repository

Tengo un microservicio para envolver el acceso a un MongoDB (DaaS). Se implementa con Spring Data Reactive Repository (ReactiveMongoRepository).

Lo he implementado dentro de una imagen acoplable, ejecutándose en Kubernetes (en Google Cloud). Configuré el orquestador para mantener un mínimo de 2 pods de mi microservicio (y un máximo de 4).

En otro microservicio, he implementado un proceso por lotes con subprocesos múltiples, donde llamo a mi daas, con la siguiente secuencia:

  1. encontrar por Id
  2. Modificar algunos campos (incluyendo incrementos de contadores)
  3. guardar

Aquí está el código relevante:

 public Mono<Element> updateElement(String id) { return this.daasClient.findById(id) .map(elem -> modify(elem)) .flatMap(elem -> this.daasClient.save(elem)); }

Cuando hay muchas operaciones, cada pod ejecuta algunas de ellas (incluido el código anterior), por lo que he visto que el acceso al recurso (Mongo) no es seguro para subprocesos, por lo que el resultado no es el esperado.

Supongo que 2 pods ejecutan findById simultáneamente, por lo que la actualización no es para el documento "real", por lo que el último en invocar el método de guardar anula los cambios del otro.

¿Alguien sabe cómo podría hacer para evitar esto, es decir, implementar esta operación de manera segura para subprocesos (pod-safe)?

Gracias

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda