我们计划将Azure Service Fabric用于面向数据的多租户应用程序.通常有100多个客户,每个客户有5到100个用户.
查看文档,我得出结论,最好的方法是为每个客户使用Application实例,而不是尝试使用Profiles来实现多租户.
这是最好的方式吗?
每个客户的应用程序实例是处理单个集群上的多租户情况的好方法,是的.今天有Service Fabric应用程序执行此操作(Azure DB是一个值得注意的应用程序).
以下是您使用此方法获得的一些内容:
每个应用程序实例都有自己的进程,这意味着每个租户都有进程级隔离.
每个应用程序实例都由一个或多个服务组成,这意味着您可以为应用程序使用"微服务"体系结构样式.
可以使用唯一参数创建每个应用程序实例,因此您可以为每个租户设置各种设置.例如,您可以通过为其应用程序实例中的服务使用更高的副本集大小设置来为某些租户提供更高的可用性,或者通过在其应用程序实例中使用更高的分区计数设置来提供更高的数据容量.
对于面向数据的多租户情况而言,这些通常都是好事,但无论其最佳方式当然还取决于您的具体要求.