2017-04-26 66 views
0

我們有一個天藍色的網絡應用程序&我們希望在全球範圍內複製的分貝。天藍色如何處理引擎蓋下的地理複製

因此,我們使用流量管理器將用戶重定向到最近的託管Web應用程序,並在Web應用程序中設置位置,它知道它應該違反哪個數據庫。

現在,我的問題是,作爲模式是一個數據庫可寫(主)和副本只能讀取,我或azure如何處理在調用數據庫時?

例如,如果從我的應用程序我要添加一條記錄到數據庫,我不能使用最近的數據庫連接字符串,我需要去反對主要的一個。

我應該如何處理?或者即使它的只讀天藍色將處理將其轉移到主分區的寫入,我也將始終對最近的分區進行分區?

如果我是應該管理的那個,那麼我應該處理2個連接字符串,一個用於主數據庫可寫,另一個用於最接近可讀的數據庫,我應該拆分我的服務,按寫/閱讀操作

並且在此方案之後,如果我有一個存儲過程,其中包含WIRTES AND READS,那麼我將如何處理?

+0

不確定,確切地說,你在問什麼。流量管理器不處理數據庫。你的應用程序將處理數據庫連接。不知道你指的是什麼,將數據庫句柄重定向到主數據庫。而且:你指的是哪個數據庫?有SQL數據庫和DocumentDB作爲託管的PaaS數據庫服務。請相應地編輯您的問題以更具體。 –

回答

0

這是在地理複製模式下使用Azure SQL時的常見問題。您不能使用傳統的LB技術,例如Azure流量管理器。在這種情況下,您應該在數據庫連接上使用retry模式,根據需要從主數據庫下載到備用名稱。

AFAIK,在連接到數據庫之後,如果您處於主服務器或只讀服務器上,沒有簡單的方法可以告訴您。根據this link,您可以調用一些存儲過程來了解拓撲。您可以使用Azure PS/API理解這一點,但是您必須將該邏輯構建到您的應用程序中。

簡而言之:

  1. 您需要處理您的數據庫連接,並採用重試 模式等
  2. 你應該實現CQRS到單獨的讀/寫工作負載從 對方如果你想利用只讀輔助

希望有所幫助。