Azure 搜索可扩展性
Azure Search scalability
我们正在开发一款移动应用程序,可以为成千上万的用户扩展,我们正在使用 Azure 搜索作为我们的主要存储。根据 Azure pricing model,标准计划的查询限制设置为每个 second/per 单元 15 个查询。有了这些限制,再加上一个可以同时容纳数千名用户的系统,我们很快就会达到极限。
在我们的情况下,当为数千个并发用户扩展时,Azure 搜索不是正确的选择吗?
DocumentDB 会是更好的选择吗?
谢谢!
有趣的是,您将 Azure 搜索用作您的主要存储,因为它不是为数据库引擎而构建的。存储专门用于搜索内容(类型典型模式是将 Azure 搜索与数据库引擎结合使用,例如 SQL 数据库或 DocumentDB),使用结果指向 "system of record"您数据库中的内容。
搜索的规模专门针对您的用户将生成的全文搜索查询。 Azure 搜索按单位扩展,每个单位每秒提供 15 次搜索。因此,如果您购买更多搜索单元,您可以扩展到远远超过 15/秒。
但是:不要将它与数据库引擎查询混淆。您询问了 DocumentDB,因此以它为例:您可以使用该数据库引擎查询远远超过 15/秒的速度,并且可以独立扩展。任何基于 VM 的数据库解决方案、SQL 数据库等都是如此——它们都可以扩展。
这实际上取决于您是否需要大量的全文搜索。如果是这样,那就太好了 - 只需将 Azure 搜索扩展到你需要的单位数,即可处理你的请求流量。如果您可以执行更多特定于数据库的搜索,而无需通过 Azure 搜索驱动您的请求,那么您就不需要扩展太多,并且可以利用本机数据库查询功能。
要添加到 David 的出色回答中的一件事 - 如果您的方案主要是搜索驱动的,并且您不需要为搜索以外的目的存储数据并且最终一致性没问题,那么使用 Azure 搜索作为主要存储可能没问题。
此外,Azure 搜索的每秒 15 个请求的查询吞吐量只是一个大概值 - 它既不是硬性限制也不是承诺。根据您的数据和查询复杂性,实际吞吐量可能显着(多次)更高或更低。
我们正在开发一款移动应用程序,可以为成千上万的用户扩展,我们正在使用 Azure 搜索作为我们的主要存储。根据 Azure pricing model,标准计划的查询限制设置为每个 second/per 单元 15 个查询。有了这些限制,再加上一个可以同时容纳数千名用户的系统,我们很快就会达到极限。
在我们的情况下,当为数千个并发用户扩展时,Azure 搜索不是正确的选择吗? DocumentDB 会是更好的选择吗?
谢谢!
有趣的是,您将 Azure 搜索用作您的主要存储,因为它不是为数据库引擎而构建的。存储专门用于搜索内容(类型典型模式是将 Azure 搜索与数据库引擎结合使用,例如 SQL 数据库或 DocumentDB),使用结果指向 "system of record"您数据库中的内容。
搜索的规模专门针对您的用户将生成的全文搜索查询。 Azure 搜索按单位扩展,每个单位每秒提供 15 次搜索。因此,如果您购买更多搜索单元,您可以扩展到远远超过 15/秒。
但是:不要将它与数据库引擎查询混淆。您询问了 DocumentDB,因此以它为例:您可以使用该数据库引擎查询远远超过 15/秒的速度,并且可以独立扩展。任何基于 VM 的数据库解决方案、SQL 数据库等都是如此——它们都可以扩展。
这实际上取决于您是否需要大量的全文搜索。如果是这样,那就太好了 - 只需将 Azure 搜索扩展到你需要的单位数,即可处理你的请求流量。如果您可以执行更多特定于数据库的搜索,而无需通过 Azure 搜索驱动您的请求,那么您就不需要扩展太多,并且可以利用本机数据库查询功能。
要添加到 David 的出色回答中的一件事 - 如果您的方案主要是搜索驱动的,并且您不需要为搜索以外的目的存储数据并且最终一致性没问题,那么使用 Azure 搜索作为主要存储可能没问题。
此外,Azure 搜索的每秒 15 个请求的查询吞吐量只是一个大概值 - 它既不是硬性限制也不是承诺。根据您的数据和查询复杂性,实际吞吐量可能显着(多次)更高或更低。