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.

Desencadenar una actualización en todos los microservicios.

Utilizando microservicios de ASP.NET Core, tanto roles de API como roles de trabajador, ejecutándose en Azure Service Fabric.
Utilizamos Service Bus para realizar la comunicación entre microservicios.

Considera la siguiente situación:
Cada microservicio tiene una copia local en memoria de objetos en caché de tipo X.
Un rol de trabajador es responsable de procesar un mensaje que resultaría en una reconstrucción de esta caché para todas las instancias.
Tenemos varios nodos y, por lo tanto, múltiples instancias de cada microservicio en Service Fabric.

¿Cuál sería el mejor enfoque para activar esta actualización?
He pensado en los siguientes enfoques:
– Llamar a SF para todas las réplicas de servicios y enviar una solicitud HTTP POST en cada réplica para activar la actualización.
– Sin embargo, esto no parece funcionar ya que los roles de trabajador no exponen ninguna API.
– Crear un tema específico de “difusión” donde cada instancia se registra en una suscripción y así utilizar el mecanismo de publicación/suscripción.
– No entiendo cómo puedo asegurarme de que cada instancia tenga su propia suscripción, pero también de que no termine con suscripciones fantasma cuando ocurra algo como un fallo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en microservicios de ASP.NET Core, Azure Service Fabric y Azure Service Bus, mi recomendación sería utilizar Azure Service Bus para activar la actualización de los objetos en caché de tipo X en todas las instancias de cada microservicio.

    Una forma de lograr esto es creando un tema específico de “broadcast” en Azure Service Bus, donde cada instancia de microservicio se registra para recibir notificaciones de actualización. Este enfoque utiliza el mecanismo de publicación y suscripción de Azure Service Bus y asegura que cada instancia reciba notificaciones de actualización sin crear suscripciones fantasma.

    Para implementar este enfoque, el rol del trabajador responsable de procesar un mensaje que activa la actualización puede enviar un mensaje al tema de “broadcast”. Este mensaje debe contener información sobre la actualización, incluyendo cualquier parámetro o dato relevante. Cada instancia de microservicio suscrita al tema recibirá este mensaje y luego podrá realizar las acciones necesarias para reconstruir la caché.

    Utilizar Azure Service Bus para la comunicación entre microservicios asegura que la comunicación sea confiable, escalable y eficiente. También permite el desacoplamiento de los microservicios, facilitando el mantenimiento y la escalabilidad de cada uno de ellos de forma independiente.

    En resumen, mi recomendación para activar las actualizaciones de los objetos en caché de tipo X en todas las instancias de cada microservicio en Azure Service Fabric es utilizar Azure Service Bus y crear un tema de “broadcast” con Azure Service Bus. Cada instancia de microservicio debe registrarse para recibir notificaciones de actualización, y el rol del trabajador responsable de la actualización debe enviar mensajes al tema. Este enfoque es confiable, escalable y eficiente, y permite una comunicación flexible y desacoplada entre microservicios.

Comments are closed.