# 搜索分发网络

在 Typesense Cloud 中,您可以选择将数据分发到全球多个区域,并将搜索查询路由到距离终端用户地理位置最近的节点。我们称之为搜索分发网络(Search Delivery Network,SDN)。

# 优势

通过将搜索索引物理上放置在更靠近终端用户的位置,您可以最小化网络延迟,确保全球各地的用户都能获得持续快速的即时搜索体验。

这与内容分发网络(CDN)为静态资源带来的优势非常相似,不同之处在于:典型的 CDN 只会缓存最近访问的项目,而在 Typesense Cloud 中,我们会将整个数据集复制到 SDN 集群中的每个节点。

# 示例场景

如果您在俄勒冈州有一个单区域的 Typesense 集群,而您的用户在纽约,当他们从纽约向俄勒冈州发送搜索请求时,将会增加约76毫秒的网络延迟。

但如果您在俄勒冈州、俄亥俄州和北弗吉尼亚州部署了一个 3 区域的 SDN Typesense Cloud 集群,纽约的用户现在将体验到低得多的网络延迟(约9毫秒),因为 SDN 会将纽约用户的请求路由到北弗吉尼亚州的节点。

Typesense Cloud 在全球拥有 20 多个地理区域,您可以为单个 SDN 集群选择任意 3-5 个区域。

# 使用方法

当您配置 Typesense Cloud 集群时,可以在集群配置页面找到启用"搜索分发网络"的选项,并选择您希望在 SDN 中包含的区域。

集群配置完成后,您将在仪表板中看到一个特殊的"最近节点"主机名:

Typesense Cloud SDN 主机名

发送到此最近节点主机名的任何请求都将被路由到距离查询发起地理位置最近的节点。

# 客户端配置

官方客户端库支持指定一个最近节点主机名,并将各个节点的主机名作为备用节点进行配置。

请求会首先发送到最近节点端点,如果由于某些原因失败,则会以轮询方式在备用节点上重试请求。

注意

对于 2022年6月16日之后 部署的 Typesense Cloud SDN 集群, 如果某个区域出现基础设施问题,或节点因任何原因不可访问, 流量会自动重新路由到下一个最近的健康节点(服务端处理)。 因此,在客户端配置中指定备用节点是可选的(但如果客户端库支持,仍建议配置),因为错误场景下的流量重路由是在服务端完成的。

对于 2022年6月16日之前 部署的 Typesense Cloud SDN 集群, 最近节点端点将解析到离用户最近的节点,无论该节点是否健康。 因此您需要依赖客户端负载均衡和上述备用节点来将请求从不健康的节点路由出去。 在这种情况下,客户端库中必须同时指定最近节点和备用节点。

如果您想为 2022年6月16日之前部署的现有 SDN 集群启用自动重路由(服务端负载均衡),可以进入集群仪表板 > 集群配置 > 修改,然后启用"负载均衡"并安排更改。