簡體   English   中英

Google App Engine多租戶API

[英]Google App Engine Multitenancy API

根據有關多租戶APIGAE文檔

多租戶是一種軟件體系結構的名稱,其中一個運行在遠程服務器上的應用程序實例為許多客戶組織(也稱為租戶)提供服務。

但這不是每個 Web應用程序的內容嗎? 幾十個,幾百個,甚至幾千個用戶都登錄到系統,訪問相同的軟件,但是從他們自己的“用戶帳戶”的上下文中? 或Google是多租戶API的某種API,用於開發可用作多個應用程序后端的通用數據抽象層?

我想我沒有得到“Google多租戶”應用程序的含義,因此,不了解Multitenancy API的用途或用途。 提前感謝您的清晰度!

考慮實現多租戶的標准方法:向一個或多個表添加“租戶ID”字段,然后在WHERE子句中包含該ID。 你索引那個領域。

您可以在App Engine中采用相同的方法,為您的某些實體添加索引屬性以保存租戶ID,在GQL WHERE子句(或過濾器)中仔細包含該ID。 這會使您在寫入(對於該屬性上的兩個索引)上花費更多,如果ID參與包含其他過濾器的查詢,則會更多,因為這些將需要包含ID的其他復合索引。

或者您使用我們的多租戶API,它可以為您提供相同的效果,而無需索引寫入的額外成本。 您可以獲得稍微簡單的代碼和更少的費用。

此處的多租戶不是指您應用的用戶,而是指具有“單獨”數據存儲的應用的“實例”。

它們實際上不是單獨的實例或單獨的數據存儲區,因為這些請求可能由共享實例提供服務,並且它們肯定與同一數據存儲區通信。 但是,通過使用API​​,您可以設置應用程序,以便將數據分區為不會相互污染的單獨命名空間。

如果您的應用只有一個用戶,那么多用戶和多租戶幾乎是一樣的。 如果您有多個用戶,那么通常您將在用戶之間共享數據。 如果是這樣,您可以使用多租戶僅在特定用戶組內共享數據,並在其租約中將其余部分分開。

正如jtahlborn正確指出的那樣,我們的每個GAE應用程序都已經是GAE基礎架構的租戶。 我們無法在不同的應用程序之間共享數據,因為它們彼此完全分區。

正如Dave所說,我們可以通過在我們的所有數據中添加某種域名或分區ID來實現多租戶。 API只是提供了一種更簡單的方法。

不同之處在於您所談論的租戶。 從第一天開始,GAE就是多租戶,每個項目(租戶)都在一個共同的GAE基礎設施中運行。 但是,最初,您的程序本身只管理了一個數據體(當GAE首次發布時)。 GAE“多租戶API”使您的單個程序能夠管理其(您)自己的租戶(因此您的租戶與GAE的租戶相對)。

簡明扼要地說明:“多租戶API”允許您在單個GAE程序中管理您自己的租戶(用戶),而GAE程序又作為GAE基礎架構內的租戶(程序)托管。

理論上,當然,您可以在GAE的第1天完成此操作,但是您的租戶之間管理數據的所有工作都將在您的代碼中處理。 “多租戶API”試圖從程序員那里消除這種痛苦,並使分割程序中的數據變得更加簡單。

暫無
暫無

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

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