簡體   English   中英

mongoDB多個實例或多個數據庫

[英]mongoDB multiple instances or multiple databases

我選擇將docker與node-js和mongoDB結合使用來制作游戲,並將所有游戲部分(戰斗,聊天,資源等)設置到不同的服務器中,以便每個部分都有自己的進程,因為例如我的資源服務器它將運行很多,因為它將每秒對每個用戶的資源進行所有計算,並將處理來自其他服務器的請求,例如用戶是否有足夠的資源來建造建築物,或者如果玩家受到攻擊將損失多少資源等。

對於我的Alpha和Beta版本,我計划運行一台服務器,該服務器將運行游戲的所有部分,但是我現在的方式是,每個部分都有其自己的mongodb實例,因此我有resourcesDB,mainDB (用戶信息,登錄信息和內容),所有實例都不會有很多集合,例如resourcesDB只有2個集合,資源集合(每個用戶將有1個文檔,其中包含與資源相關的內容)以及將存儲的日志集合所有用戶的使用情況(建築升級,戰斗失敗等)

我已經讀過同一服務器上的多個實例,他們都說這不是最好的方法,因為這會影響我的性能,將來我打算將所有部分都放在不同的服務器上因此,如果需要,每個部分將具有自己的服務器和數據庫服務器。

  1. 我是否應該構建1個實例並將其在數據庫級別分離? 這意味着我將不得不從多個服務器連接到同一實例,資源服務器將每秒更新所有用戶的資源計數,並將其與戰斗服務器結合使用,后者將更新數據庫中的部隊狀態,以及每次進行中的戰爭的更多信息上,我還將擁有聊天數據庫,該數據庫將隨每個私人消息或聊天消息進行更新,這會引起任何問題嗎? 還是僅當我連接到單個數據庫並在集合級別將其分開時才會引起問題?

  2. 我為什么不應該繼續創建多個實例? 我讀到,如果在同一服務器上使用多個實例,則配置文件可能存在問題,但我假設docker處理該部分。

更新-我在這里找到了一個很好的答案: https : //dba.stackexchange.com/questions/156811/mongodb-in-micro-services-structure/156984#156984

為您的應用程序使用微服務架構是個好主意,但我認為沒有充分的理由分離數據庫。 MongoDB可以為您處理(共享)。 同樣,當您寫入集合B時,MongoDB也不會阻止對集合A的寫入。如果將您的應用程序分離到多個數據庫,將很難進行備份和維護應用程序。

您可以在此處閱讀有關MongoDB的並發選項的信息,並了解MongoDB如何處理集合級鎖定。 https://docs.mongodb.com/manual/faq/concurrency/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM