我现在正在研究规划一个简单的多客户端设置,其中每个本机.net客户端实例都应该能够连接到SQL数据库。
然而,我关心的是架构。如果设置增长到几百个客户端连接,那么最好的架构是什么?
整个设置将保持在一个封闭的网络中。
答:在客户端和SQL db之间实现处理程序服务以便以后更好地平衡负载?
B:直接将客户端连接到数据库?
非常期待阅读您的想法和建议。
答案 0 :(得分:1)
我真的不愿意直接暴露数据库,这可能会使任何数据库更改都需要更新客户端。我会在两者之间放置一个服务(REST,SOAP等),然后只公开你需要的操作和对象。然后,如果您发现需要对某些数据进行非规范性处理,那么服务定义和客户端就不需要更改。
这也意味着您可以在服务器上使用逻辑(除了sprocs),如果您需要修复或改进某些内容,它总是比多个客户端更容易更新服务器。缓存也可以更好地工作,并有助于db加载。
您可能会发现自己需要从数据库以外的其他位置获取数据,例如,如果您需要良好的全文搜索,常见的方法是使用Lucence进行搜索并检索从关系数据库中找到的项目。也许您需要从其他服务或应用程序获取其他数据。同样,服务器可以在客户不必知道或不关心的情况下完成所有这些操作。
由于服务和数据库可以位于同一子网上,因此数据库连接数也会少得多,并且它们应该具有低延迟。我不知道你的连接有多好,但是像HTTP这样的REST可能比原始数据库查询更容忍。
所以我会去客户端 - >服务器 - >分贝。