我们正在开发一个移动应用程序,可以为成千上万的用户提供服务,我们使用Azure搜索作为我们的主要存储空间。根据Azure定价模型,对于标准计划,查询限制设置为每秒15个查询/单位。有了这些限制,并且有了一个能够与成千上万的用户一致使用的系统,我们很快就会达到这个极限。
在我们的情况下,Azure搜索不是为数千并发用户进行缩放的正确选择吗?DocumentDB是一个更好的选择吗?
谢谢!
发布于 2015-05-21 13:48:44
有趣的是,您使用Azure搜索作为您的主要存储空间,因为它不是为数据库引擎而构建的。存储专门用于搜索内容(典型模式是将Azure搜索与数据库引擎(例如storage或DocumentDB )结合使用),使用结果指向数据库中的“记录系统”内容。
搜索的规模特别适用于您的用户将生成的全文搜索查询。每个单位提供15次搜索。因此,如果你购买更多的搜索单位,你可以扩大到超过15秒。
但是:不要将此与数据库引擎查询混淆。您询问了DocumentDB,因此以它为例:您可以使用该数据库引擎进行超过15秒的查询,并且可以独立地进行扩展。任何基于VM的数据库解决方案、SQL数据库等等也是如此--它们都可以扩展。
这实际上取决于你是否需要大容量的全文搜索。如果是这样的话,很好-只需规模Azure搜索到你需要的单位数量,以处理您的请求流量。如果您可以执行更多特定于数据库的搜索,而不需要通过Azure搜索驱动您的请求,那么您就不需要扩展那么多,并且可以利用本地数据库查询功能。
发布于 2015-05-21 18:38:03
在David的出色答案中,有一件事值得补充--如果您的场景主要是由搜索驱动的,并且您不需要存储数据而不是为了搜索,并且最终的一致性还可以,那么使用Azure搜索作为主要存储可能会很好。
另外,Azure搜索每秒15次请求的吞吐量只是一个大概的数字--这既不是一个硬限制,也不是一个承诺。根据您的数据和查询复杂性,实际吞吐量可以大大提高(很多倍),也可以更低。
https://stackoverflow.com/questions/30370102
复制相似问题