Запустить обновления для всех экземпляров фермы серверов

Запустить обновления для всех экземпляров фермы серверов

Наши веб-серверы (IIS 10) используют общую базу данных (SQL Server 2016). Они опрашивают некоторые данные из базы данных с регулярным интервалом. Когда один из веб-серверов обрабатывает запрос, приводящий к изменению этих данных, он обновляет базу данных и свои собственные данные. Но другие экземпляры веб-серверов не знают об этом изменении данных, поэтому имеют старые данные до следующего опроса.

Как нам следует дать указание другим экземплярам веб-сервера мгновенно обновлять свои данные?


Пример:

  • Таблица базы данных tblUserRoles хранит все роли для всех пользователей.
  • Веб-серверы опрашивают этот список один раз в день.
  • Когда администратор отзывает права пользователя, веб-сервер, обрабатывающий запрос, немедленно обновляет базу данных и свой собственный UserRoleList.
  • Но как другие веб-серверы узнают о необходимости обновить свой UserRoleList?

Возможное решение:

  • Внутренняя служба ведет список всех активных экземпляров веб-сервера.
  • Когда веб-сервер [A] обрабатывает запрос, который изменяет данные, он обновляет базу данных, обновляет свой собственный список данных и запрашивает список активных серверов [BZ].
  • Веб-сервер A вызывает обновление списка данных для серверов BZ, вызывая каждый из них с помощью внутреннего URL-адреса (например, /internal/update-user-roles)
  • Серверы BZ теперь обновляют свои данные, опрашивая данные из базы данных.

Связанный контент