共用方式為

Azure AI 搜索中的可靠性

本文介绍 Azure AI 搜索中的可靠性支持,包括通过 可用性区域多区域部署实现区域内复原能力。

可靠性是你和Microsoft之间的共同责任。 可以使用本指南确定哪些可靠性选项满足特定业务目标和运行时间目标。

在 Azure AI 搜索中,可以通过以下方法实现可靠性:

  • 缩放单个搜索服务。 添加多个 副本 以提高可用性,并处理更高的索引和查询工作负荷。 如果区域支持可用性区域,副本会以最佳方式分布在不同的物理数据中心,以实现额外的复原能力。

  • 跨不同区域部署多个搜索服务。 每个服务在其区域内独立运行。 但是,在多服务方案中,可以选择跨所有服务同步内容。 还可以使用负载均衡解决方案重新分发请求,或者在发生服务中断时进行故障转移。

生产部署建议

对于生产工作负荷,我们建议至少使用具有两个副本的计费层。 此配置使搜索服务能够更灵活地应对暂时性故障和维护作。 它还满足 Azure AI 搜索的 服务级别协议 ,该协议需要两个副本用于只读工作负荷,以及三个或更多个只读工作负荷的副本。

Azure AI 搜索不提供免费层的服务级别协议,该协议仅限于一个副本,强烈建议不要用于生产。

暂时性故障

暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。

与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议

搜索服务可能会在标准、计划外维护作期间遇到暂时性故障。 Azure AI 搜索不提供提前通知或允许在特定时间计划维护。 尽管尽一切努力将停机时间降到最低,即使对于单副本服务,也仍会发生短暂的中断。 为了提高针对这些暂时性故障的复原能力,建议使用两个或多个副本。

可用性区域支持

可用性区域 是每个 Azure 区域内物理上独立的数据中心群组。 当某个区域发生故障时,服务可以切换到其他可用的区域。

Azure AI 搜索是区域冗余的,这意味着副本分布在服务区域中的多个可用性区域。

向服务添加两个或多个副本时,Azure AI 搜索会尝试将每个副本放置在不同的可用性区域中。 对于具有比可用区域更多的副本的服务,副本将尽可能均匀地分布在各个区域。

重要

Azure AI 搜索不保证副本的确切位置,这受容量约束、缩放作和其他因素的约束。

区域支持

对可用性区域的支持取决于基础结构和存储。 有关支持区域的列表,请参阅 “选择 Azure AI 搜索的区域”。

要求

搜索服务时会自动启用区域冗余:

成本

每个搜索服务都以一个副本开头。 区域冗余需要两个或更多个副本,这会增加运行服务的成本。 若要了解副本的计费影响,请使用 定价计算器

配置可用性区域支持

如果搜索服务满足 区域冗余的要求,则无需进行额外的配置。 只要可能,Azure AI 搜索会尝试将副本放置在不同的可用性区域中。

区域关闭体验

当可用性区域遇到中断时,搜索服务将继续使用生存区域中的副本进行作。 以下几点总结了预期行为:

  • 检测和响应:Azure AI 搜索负责检测可用性区域中的故障。 无需执行任何操作即可启动区域故障转移。

  • 通知:Azure AI 搜索在区域关闭时不会通知你。

  • 活动请求:删除任何活动请求,应由客户端重试。

  • 预期数据丢失:区域故障不应导致数据丢失。

  • 预期停机时间:区域故障不应导致搜索服务停机,但可以暂时降低服务的整体容量。 若要保持最佳性能,请考虑预配比通常需要的更多副本。 在中断期间添加副本具有挑战性,因此过度预配有助于确保服务可以处理正常的请求卷,即使容量降低也是如此。

  • 重新路由流量:当某个区域发生故障时,Azure AI 搜索会检测失败,并将请求路由到生存区域中的活动副本。

Failback

当可用性区域恢复时,Azure AI 搜索会自动还原正常作,并开始将所有区域(包括恢复的区域)的流量路由到可用副本。

对区域故障进行测试

Azure AI 搜索管理区域冗余服务的流量路由。 无需启动或验证任何区域故障进程。

多区域支持

Azure AI 搜索是单区域服务。 如果区域不可用,则搜索服务也变得不可用。

备选多区域方法

若要在多个区域中使用 Azure AI 搜索,必须在每个区域中部署单独的服务。 如果使用多区域地理体系结构在次要 Azure 区域中创建相同的部署,则应用程序更容易遭受单区域灾难。

按照此方法作时,必须跨区域同步索引以恢复最后一个应用程序状态。 还必须配置负载均衡和故障转移策略。

Backups

由于 AI 搜索不是主要数据存储解决方案,因此它不提供自助备份和还原选项。 但是,可以使用 index-backup-restore.NETPython 的示例将索引定义及其文档备份到一系列 JSON 文件,然后用于还原索引。

但是,如果意外删除了索引且没有备份,则可以 重新生成索引。 重新生成涉及在搜索服务上重新创建索引,然后通过从主数据存储检索数据来重新加载索引。

服务级别协议

Azure AI 搜索的服务级别协议(SLA)描述了服务的预期可用性,以及实现该可用性预期必须满足的条件。 有关详细信息,请参阅 Azure AI 搜索的 SLA

SLA 覆盖范围适用于具有至少两个副本的可计费层上的搜索服务。 在 Azure AI 搜索中,副本是索引的副本。 每个服务可以有 1 到 12 个副本。 添加副本时,Azure AI 搜索可以在一个副本上执行维护,同时查询继续在其他副本上执行。

Azure 保证至少 99.9% 可用性:

  • 具有两个副本的搜索服务的只读工作负荷(查询)。
  • 具有三个或多个副本的搜索服务的读写工作负荷(查询和索引)。