【发布时间】:2017-11-19 17:42:31
【问题描述】:
假设我有一个多租户单体应用程序,它使用单独的架构(或数据库)方法来隔离租户的数据。多个租户使用单个正在运行的应用程序实例来访问他们的数据。下图总结了这个想法:
到目前为止,一切都很好。现在,我必须扩大应用程序的规模。为此,我增加了运行实例的数量,负载均衡器将每个请求路由到其中一个实例。通过这样做,每个实例为每个租户的数据库保留一个连接池,因为它可以服务来自任何租户的请求。结果是这样的:
问题在于它随着租户数量的增加呈指数增长——更多的租户需要更多的运行实例,它们都需要更多的连接,这需要更多的资源来跟踪连接池。如果我有一个微服务应用程序,情况会变得更糟。
我的问题是:这种方法是否可维护?有哪些可能的替代方案以及如何实施它们?
【问题讨论】:
-
看看这篇文章,有点老了,不过不错msdn.microsoft.com/en-us/library/aa479086.aspx
-
@Hackerman 感谢您的参考。我以前读过这篇论文。它很好地指出了问题,但不是可行的解决方案或管理它的方法。
-
这个问题你解决了吗?这个连接池很难管理,如果你有解决方案,请分享。谢谢
标签: architecture multi-tenant microservices