2

我遇到了一個不常見的問題,我的客戶有3個商店,並且希望Web應用程序 分別管理每個商店。這將是一種常見的多租戶方法,但有 是一個額外的要求:客戶不想依賴互聯網連接。 因此,我可以想到2個解決方案,在每個 存儲上都必須有一個服務器,其中1個數據庫實例和1個應用程序正在運行,如果互聯網連接失敗,客戶端可以使用應用程序本地實例。如何在軌道上使用每個租戶的紅寶石數據庫

  • 異步數據庫複製 - 每家商店的本地數據庫是在線 服務器數據庫的副本。

  • 根據所選商店的不同,使導軌連接到不同的數據庫。在這種情況下,應用程序聯機實例連接到的只有3個本地數據庫(每個數據庫位於一個存儲區)。我看到了Guy's speech,並閱讀了magic_multi_connections(magicmodels.rubyforge.org/magic_multi_connections),但它似乎已過時。 DbCharmer似乎是一個可能的解決方案,但我不知道它是否會這樣做。

    相關的其他職位:

    • railsforum.com/viewtopic.php?id=48435
    • stackoverflow.com/questions/1825844/multiple-databases-in-rails

我想知道這種情況下的最佳體系結構。你會怎麼做 ?

+0

因爲我只有3個租戶,所以我決定在heroku上安裝3個系統實例,每個實例都在一個商店訪問數據庫。爲了傳遞實例,我可以使用位於heroku的不同數據庫,我將使用establish_connection來更改由StoresTransactions類訪問的數據庫。 – Gus 2012-08-09 09:03:54

回答

1

Answer通過DbCharmer開發商奧雷克Kovyrin:

「..如果你在一個多進程使用AR(單線程)環境中,你的每個客戶端有單獨的連接的情況下,是絕對有可能。」

+0

那麼像Glassfish或Jetty這樣的標準服務器會如何呢?我是RoR的新手,但是我認爲某些服務器可能是多線程的,因爲性能提升了? – Gus 2012-08-12 05:53:10