Activar actualizaciones para todas las instancias de la granja de servidores

Activar actualizaciones para todas las instancias de la granja de servidores

Nuestros servidores web (IIS 10) comparten una base de datos común (SQL Server 2016). Sondean algunos datos de la base de datos a intervalos regulares. Cuando uno de los servidores web procesa una solicitud que conduce a un cambio en esos datos, actualizará la base de datos y sus propios datos. Pero las otras instancias del servidor web no conocen este cambio de datos, por lo que tienen datos antiguos hasta la próxima encuesta.

¿Cómo deberíamos indicar a las otras instancias del servidor web que actualicen sus datos al instante?


Ejemplo:

  • La tabla de base de datos tblUserRoles almacena todos los roles de todos los usuarios.
  • Los servidores web sondean esta lista una vez al día.
  • Cuando el administrador revoca los derechos de un usuario, el servidor web que procesa la solicitud sabe que debe actualizar la base de datos y su propia UserRoleList inmediatamente.
  • Pero, ¿cómo saben los otros servidores web que deben actualizar su UserRoleList?

Solución posible:

  • Un servicio interno mantiene una lista de todas las instancias de servidor web activas.
  • Cuando un servidor web [A] procesa una solicitud que cambia los datos, actualiza la base de datos, actualiza su propia lista de datos y solicita la lista de servidores activos [BZ].
  • El servidor web A invoca la actualización de la lista de datos para los servidores BZ llamando a cada uno de ellos mediante una URL interna (por ejemplo, /internal/update-user-roles)
  • Los servidores BZ ahora actualizan sus datos sondeando datos de la base de datos.

información relacionada