觸發所有伺服器集區實例的更新

觸發所有伺服器集區實例的更新

我們的 Web 伺服器 (IIS 10) 共用一個公共資料庫 (SQL Server 2016)。他們定期從資料庫中輪詢一些資料。當其中一台 Web 伺服器處理導致資料發生變更的請求時,它將更新資料庫及其自身的資料。但其他 Web 伺服器實例不知道此資料更改,因此在下一次輪詢之前仍保留舊資料。

我們應該如何指示其他 Web 伺服器實例立即更新其資料?


例子:

  • 資料庫表格 tblUserRoles 儲存所有使用者的所有角色。
  • Web 伺服器每天輪詢該清單一次。
  • 當管理員撤銷使用者權限時,處理請求的 Web 伺服器知道立即更新資料庫及其自己的 UserRoleList。
  • 但是其他 Web 伺服器如何知道更新其 UserRoleList?

可能的解決方案:

  • 內部服務維護所有活動 Web 伺服器執行個體的清單。
  • 當網頁伺服器[A]處理更改資料的請求時,它會更新資料庫,更新自己的資料清單並請求活動伺服器清單[BZ]。
  • Web 伺服器 A 透過使用內部 URL(例如 /internal/update-user-roles)呼叫每個伺服器來呼叫伺服器 BZ 的資料清單更新
  • 伺服器 BZ 現在透過輪詢資料庫中的資料來更新其資料。

相關內容