出于可伸缩性的原因,我希望在Azure云中托管我的WCF服务。例如,将有一些读取数据操作。并且它将处于高负载状态(1000+用户/秒)。(就像在我的previous question里)
另外,对于任何请求,我都有1秒超时的限制。
我的服务将与SQL Azure连接。我选择它是因为延迟很小(根据微软的benchmark,不超过7ms )
每个实例/数据库可以拥有多少个并发连接?
当我将达到每个实例的连接限制时,是否有能力扩展SQL Azure?
针对我的场景的其他解决方案和选项?
谢谢。
发布于 2011-05-26 22:00:15
需要记住的一件事是,您需要确保最大限度地利用连接池。使用服务帐户而不是不同的登录帐户是确保正确的连接池的重要步骤。
另一个考虑因素是火星的使用。如果您有许多请求正在通过,您可能希望将它们集中到单个请求中,从而形成单个连接,并返回多个结果集。SQL将讨论如何实现In this post语句的单向队列;这可能不适用于您,因为您可能期望得到响应,但它可能会为您提供一些关于如何实现批请求以最小化连接数量和最小化等待时间的想法。
最后,您可以看看我去年编写的用于针对SQL Azure测试连接/语句的工具。该工具自动关闭连接池,以测量并发的影响。You can download it here。
最后,我还在codeplex上编写了Enzo Shard Library。如果你决定为你的项目调查这个库,请让我知道你有任何问题。请注意,该库将不断发展,以支持SQL Azure Data Federation的未来功能。
发布于 2011-05-26 01:24:41
当我将达到每个实例的连接限制时,是否有能力扩展SQL Azure?
除了Enzo sql分片建议之外,还有几个Microsoft产品/功能正在构建中,以帮助扩展SQL Azure。这些都是CTP (充其量),但可能会为您提供一些可伸缩性选项,允许您将负载分散到多个SQL Azure数据库:
Azure SQL联合- http://convective.wordpress.com/2011/05/02/sql-azure-federations/
https://stackoverflow.com/questions/6123400
复制相似问题