gpt4 book ai didi

java - 是否可以使用 Google App Engine 为每个子域使用不同的数据存储?

转载 作者:行者123 更新时间:2023-12-03 19:48:32 25 4
gpt4 key购买 nike

假设我有域名:

mywonderfulapp.com

我想为每个客户分配一个子域。例如:

clientA.mywonderfulapp.com

我希望客户端 A 访问 URL clientA.mywonderfulapp.com 并私下检索其数据,客户端 B 可以访问 clientB.mywonderfulapp.com 以检索自己的数据。

应用程序代码应该相同,但它们应该使用不同的数据存储。

Google App Engine Java 可以做到这一点吗?

提前致谢!

感谢收到的反馈。似乎 Google App Engine 应用程序不能为每个子域使用多个数据存储。

解决方案

@jldupont 和@Steve Jessop:让我试着理解你的意思。如果我不理解你,请纠正我。

每个实体都有一个名为 prefix 的字段,它在它所属的位置存储一个子域字符串。例如,可以使用在 web.xml 中配置的过滤器捕获此字符串:

<filter>
<filter-name>SubdomainFilter</filter-name>
<filter-class>filters.SubdomainFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SubdomainFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

然后使用如下查询:

select from guestbook.Greeting where subdomain == 'clientA'

问题

  • 在如此巨大的“数据库”中执行查询不会很慢吗?
  • 将所有用户和帐户数据混合在同一个数据存储区中不会带来安全隐患吗?

最佳答案

这通常称为multitenancy .幸运的是,由于最初提出了这个问题,应用引擎团队添加了一个名为 namespaces 的功能。支持 Multi-Tenancy 并允许您按照自己的方式对数据存储进行分区。

您将为每个客户端创建一个命名空间,根据代码中的子域设置命名空间,然后所有数据存储、内存缓存、任务队列和其他 API 操作都将限制在该命名空间内。

为了回答您的后续问题,使用命名空间不会影响性能,并且假设您始终设置正确的命名空间,它们与使用完全独立的应用程序 ID 一样安全。

关于java - 是否可以使用 Google App Engine 为每个子域使用不同的数据存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com