gpt4 book ai didi

基于Request URL的Spring + Tomcat Multi-Tenancy

转载 作者:行者123 更新时间:2023-11-28 21:58:26 27 4
gpt4 key购买 nike

我们有一个供多个客户使用的应用程序。每次都是相同的应用程序,但具有不同的数据库。

我们当前的设置包括:

  • Apache 2 网络服务器
  • Tomcat 8
  • Spring 4.1

Web 服务器将特定的 URL 路由到 Tomcat,即

  • /customer1 -> tomcat/customer1
  • /customer2 -> tomcat/customer2

现在我们希望将这些条目保留在 Apache Config 中,但要以某种方式配置 Tomcat 和 Spring。基本上 Tomcat 应该接受每个请求(可能由正则表达式定义 - 不是必需的)并将其路由到一个应用程序。

目前有一个应用程序运行在 /webapps/customer1另一个实例位于 /webapps/customer2 .

将来应用程序应该以某种方式在 /webapps/* 运行,因此在 Spring 我可以查看请求 URL 并选择 db_customer1/customer1/... 请求customer2 也一样.

这有可能实现吗?

最佳答案

如果我没理解错的话,您需要使用 2 个(或更多)数据库的单个应用程序,具体取决于客户。客户通过 URL 确定。

如果是这种情况,您应该查看 AbstractRoutingDatasource 并创建您自己的该类的实现。它允许您在单个应用程序中使用不同的数据源。然后,您应该创建一个过滤器或拦截器来拦截 URL,然后根据该 URL,将路由数据源路由到适当的底层数据源。

看看下面链接的这个例子:它有一个客户路由数据源,它为不同的登录用户使用不同的数据库: https://spring.io/blog/2007/01/23/dynamic-datasource-routing/

关于基于Request URL的Spring + Tomcat Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28252756/

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