我正在构建SaaS应用程序,后端将是SQL Server和WCF服务。
这是我不用担心的地方..我计划为每个客户设置单独的数据库(由此决定)并根据他们的数据库对用户进行身份验证。那也决定了。
将有一个中央数据库,它将拥有客户信息,例如数据库是什么以及使用哪些端点。
理想情况下,我想要这样的事情:
通过这种方式,我可以看到性能如何,因为我不必在每次调用时都通过我的“系统”代理。客户端将知道它处理的端点和数据库。
但我不确定如何安全地实现这一点。因为步骤“e”中的数据库信息将流回客户。从技术上讲,即使它已经破解了客户 - 仍然无法从外部访问数据库本身。但不是很好......
你的想法是什么?或者应该使用companyID令牌进行每次呼叫,然后主要中央服务将路由这些呼叫?但这就像单点故障。我宁愿看到主服务器在登录时工作。
答案 0 :(得分:1)
我们已经完成了WCF站点连接到处理1000个并发请求的多个数据库,WCF配置中有一些需要调整的位,但它应该可以正常工作。
我不明白为什么数据库信息需要“流回”给用户。
所有这些都可以很好地服务于服务器端。然后,可以根据用户凭据做出有关要连接的数据库的所有决定。
如果您希望多个端点处理负载,则在登录后重定向到相关(或随机)端点。然后将相关的路由/映射数据存储在相关端点上(如果您使用的是随机的话,则存储所有这些数据)。
您需要的只是他们决定使用哪个数据库的凭据。
提示:与所有绩效问题一样:衡量,衡量,衡量。您需要知道在预期负载下是否有多个端点有任何好处;所以建立一个负载测试。然后你可以看到性能受到的影响。在测量之前过度工程有时会起作用,但总是浪费时间。