2016-01-23 60 views
0
相當於

有3層MongoDB中:什麼是數據庫的Couchbase

  1. 服務器
  2. 數據庫
  3. 收集

然而,在Couchbase我能看到的東西丟失;該層是這樣:

  1. 集羣(一組服務器)
  2. 數據庫(MISSING!)

我需要部署2個數據庫,1個用於開發和1用於生產。缺失的圖層數據庫使我處於困境。

回答

2

你可以粗略地認爲Couchbase剷鬥類似於MongoDB的數據庫,雖然它似乎是在Couchbase中更常見的是具有更少的桶並在一個桶中包含多種類型(通過在每個存儲的JSON對象上使用類型字段進行區分)。

我真的建議不要把你的開發和生產桶放在同一個集羣上,他們應該不惜一切代價分開。一旦你運行了兩個集羣,那麼你就不會遇到上述問題,甚至可以在本地運行一個vms集羣來開發,然後在雲提供商上運行一個真正的生產集羣。

0

我終於發現,Couchbase中Cluster層和Bucket層之間沒有任何東西。

我正在使用的唯一解決方案是爲所有存儲桶名稱添加前綴。例如。

databasename.users 
databasename.articles 
... 

有一個在Couchbase一些所謂的「池」,但在未來可能的特點:What is a couchbase pool

 
P.S. 
My latest layer mapping for Couchbase: 

Server 
A cluster, a server, eg. localhost 

DB 
A bucket, eg. mybucket 

Table 
A document design, eg. dev_users, and a group of 
documents with doc.type=="user" forms the 'users' table. 

Pre-select 
A view, eg. dev_users/all_users 
1

您將擁有一個羣集(組成羣集的所有服務器作爲一個) 然後使用羣集。類似於數據庫。 CB中沒有「表格」。現在通常在行中的是文檔。

如果你可能在SQL中有單獨的數據庫,在CB中你可以把它們放在一個或多個桶中。剷鬥更適合用作邏輯,用途,索引,安全等分離。請參閱:http://nosqlgeek.blogspot.de/2015/09/how-many-buckets.html

術語池是在版本1.8中引入的,涉及集羣中的節點。不再用於這種情況。最新版本是4.1 您將看到與組相關的術語「池」。組是通常用於機架認知/交易區域的節點的邏輯分組。因此,如果您有六個節點,每個機架2個,您可能已定義組(池)1:Rack1組2:Rack2組3:Rack3和Couchbase足夠智能,以確保副本文檔與主文檔不在同一組中。

還有連接池,但我不認爲這就是你所指的...