2010-09-11 56 views

回答

13

命名空間允許您爲多租戶應用程序實現數據分離。 official documentation鏈接到一些示例項目,讓您知道如何使用它。

-3

命名空間可用於爲不同的用戶創建不同的數據庫。它有助於在數據庫中創建層次結構。

0

尋找,對這個問題沒有太多好的回顧和回答,所以試圖給這個。

當使用名稱空間時,我們可以在給定的名稱空間上實現鍵和值分離的最佳實踐。以下是徹底提供名稱空間信息的最佳示例。

from google.appengine.api import namespace_manager 
from google.appengine.ext import db 
from google.appengine.ext import webapp 

class Counter(db.Model): 
    """Model for containing a count.""" 
    count = db.IntegerProperty() 


def update_counter(name): 
    """Increment the named counter by 1.""" 
def _update_counter(name): 
    counter = Counter.get_by_key_name(name) 
    if counter is None: 
     counter = Counter(key_name=name); 
     counter.count = 1 
    else: 
     counter.count = counter.count + 1 
    counter.put() 
# Update counter in a transaction. 
db.run_in_transaction(_update_counter, name) 

class SomeRequest(webapp.RequestHandler): 
"""Perform synchronous requests to update counter.""" 
def get(self): 
    update_counter('SomeRequest') 
    # try/finally pattern to temporarily set the namespace. 
    # Save the current namespace. 
    namespace = namespace_manager.get_namespace() 
    try: 
     namespace_manager.set_namespace('-global-') 
     update_counter('SomeRequest') 
    finally: 
     # Restore the saved namespace. 
     namespace_manager.set_namespace(namespace) 
    self.response.out.write('<html><body><p>Updated counters') 
    self.response.out.write('</p></body></html>') 
1

命名空間用於谷歌應用程序引擎來創建多租戶應用程序。在Multitenent應用程序中,應用程序的單個實例在服務器上運行,爲多個客戶機構(租戶)提供服務。有了這個,可以將應用程序設計爲虛擬分割其數據和配置(業務邏輯),並且每個客戶端組織都可以使用自定義的虛擬應用程序實例。只需通過爲每個租戶指定唯一的名稱空間字符串。

命名空間的其他用途:

  1. Compartmentalizing用戶信息
  2. 從應用數據
  3. 創建用於測試和生產
  4. 單獨的數據存儲的實例上的單個App Engine上運行多個應用程序分離管理數據實例

For More inform請訪問以下鏈接:

http://www.javacodegeeks.com/2011/12/multitenancy-in-google-appengine-gae.html 
https://developers.google.com/appengine/docs/java/multitenancy/ 
http://java.dzone.com/articles/multitenancy-google-appengine 

http://www.sitepoint.com/multitenancy-and-google-app-engine-gae-java/ 
相關問題