Подтвердить что ты не робот

Какое пространство имен используется в хранилище данных App Engine?

В консоли администратора разработки, когда я просматриваю свои данные, он говорит "Select different namespace".

Каковы пространства имен и как их использовать?

4b9b3361

Ответ 2

Пространства имен используются в движке Google для создания приложений с несколькими приложениями. В приложениях Multitenent один экземпляр приложения работает на сервере, обслуживая несколько клиентских организаций (арендаторов). При этом приложение может быть спроектировано таким образом, чтобы фактически делить свои данные и конфигурацию (бизнес-логику), и каждая клиентская организация работает с настраиваемым экземпляром виртуального приложения. Вы можете легко разделить данные между арендаторами, просто указав уникальную строку пространства имен для каждого арендатора.

Другое Использование пространства имен:

  • Разделение информации о пользователе
  • Разделение данных администратора из данных приложения
  • Создание отдельных экземпляров хранилища данных для тестирования и производства
  • Запуск нескольких приложений в одном экземпляре ядра приложения

Для получения дополнительной информации посетите приведенные ниже ссылки:

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/

Ответ 3

Взгляд, на этот вопрос не так много хорошего, и он ответил так, пытаясь дать этот.

При использовании пространств имен у нас может быть наилучшая практика разделения ключей и значений в данном пространстве имен. Ниже приведен лучший пример предоставления информации пространства имен.

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>')

Ответ 4

Пространство имен может использоваться для создания различной базы данных для разных пользователей. Это помогает создавать иерархию в базе данных.