我正处于构建SaaS解决方案的最初阶段。要求是:
所以,我认为我应该使用微服务和每个租户数据库。我现在正试图找出如何设计数据库。
我的第一个想法是,如果我有10个服务和15个租户,那么我有150个数据库,因为每个服务应该有自己的数据库,每个租户也应该有自己的数据库。
这是一种有效的方法还是应该采用其他设计?另外,我该怎么做才能将连接从服务路由到正确的租户数据库?
是的:这是正确的方法。
使用URL中的子域将流量路由到正确的门户服务,如下所示:https://tenantN.domain.tld
您可能也想到了这一点,但设置了访问控制,以便为一个租户进行身份验证的人无法通过猜测FQDN或使用暴力生成FQDN的恶意用户来访问其他租户的服务。