Назад |
Перейти на главную страницу
Запускать обновления для всех экземпляров фермы серверов
Наши веб-серверы (IIS 10) используют общую базу данных (SQL Server 2016). Они регулярно опрашивают некоторые данные из базы данных. Когда один из веб-серверов обрабатывает запрос, ведущий к изменению этих данных, он обновляет базу данных и свои собственные данные. Но другие экземпляры веб-сервера не знают об этом изменении данных, поэтому имеют старые данные до следующего опроса.
Как мы должны дать указание другим экземплярам веб-сервера немедленно обновить свои данные?
Пример:
- В таблице базы данных tblUserRoles хранятся все роли для всех пользователей.
- Веб-серверы опрашивают этот список один раз в день.
- Когда администратор отменяет права пользователя, веб-сервер, обрабатывающий запрос, знает, что нужно немедленно обновить базу данных и свой собственный UserRoleList.
- Но как другие веб-серверы узнают, что нужно обновлять свой UserRoleList?
Возможное решение:
- Внутренняя служба поддерживает список всех активных экземпляров веб-сервера.
- Когда веб-сервер [A] обрабатывает запрос, который изменяет данные, он обновляет базу данных, обновляет свой собственный список данных и запрашивает список активных серверов [B-Z].
- Веб-сервер A вызывает обновление списка данных для серверов B-Z, вызывая каждый из них с использованием внутреннего URL-адреса (например, / internal / update-user-roles)
- Серверы B-Z теперь обновляют свои данные путем опроса данных из базы данных.