在设计利用MongoDB Search 和MongoDB Vector Search 的MongoDB系统时,有两种常见的部署类型:
一种共存架构,其中
mongod
和mongot
进程股票同一托管。此架构适用于开发和小型搜索或向量搜索工作负载。一种专用基础架构模型,其中
mongod
和mongot
进程在单独的计算机上运行,并且每台计算机的大小根据每个工作负载的需求进行调整。对于需要高可用性、分片或具有大量搜索查询和索引的大量搜索或向量工作负载的应用程序,建议使用此基础架构。
本节介绍这两种部署类型。它还描述了在分片的MongoDB集群中部署 mongot
的影响。
共存架构
这是最简单的架构,建议用于开发环境或任何需要快速迭代的情况。它擅长快速原型设计,并且需要最少的配置。
该部署由同时运行mongod
和 mongot
进程的单台计算机组成。所有通信都可以通过 localhost
地址进行,并且所有身份验证和安全功能都可以禁用或放宽。
对于大多数小型搜索工作负载,您可以将此架构扩展为多节点副本集。实施托管架构时要小心,并监控资源争用的迹象。

专用基础架构
这是一种通用架构,建议用于生产环境。专用基础架构可支持数据库节点和搜索节点的水平和垂直可扩展性。
该部署由至少三台在副本集配置中运行mongod
的计算机和至少两台运行mongot
的计算机组成。为了在查询 Search 时提供高可用性,mongod
节点需要应用程序级负载负载均衡器。考虑使用像 Envoy 这样的负载负载均衡器,并使用负载均衡策略,例如按请求循环。
相反方向无需负载均衡。mongot
会根据其配置自动选择一个 mongod
节点进行通信,以进行数据复制和索引目录数据。

分片拓扑
此架构类似于专用基础架构架构,但副本集配置会复制到每个单独的分片。
注意
即使您应仅将 mongot
配置为从一个分片复制,mongot
仍需配置路由器解决才能访问权限索引目录。
对于分片的拓扑结构架构,mongot
一次只属于一个分片。因此,每个分片内的负载均衡器只能配置为将流量定向到该单个分片。
如果将分片添加到具有现有MongoDB搜索索引的集合,则会在为该MongoDB搜索索引新添加的分片上进行初始同步。每个分片的MongoDB Search索引仅包含该分片上存在的集合中的文档。要学习;了解更多信息,请参阅对全局集合进行分片。
警告
如果您对已经具有MongoDB搜索索引的集合分片片,则当索引在新分片上构建时,您可能会遇到一段时间的搜索查询停机。
此外,如果您为包含MongoDB Search索引的已分片的集合添加分片,则针对该集合的搜索查询将失败,直到添加的分片完成初始同步进程为止。要学习;了解更多信息,请参阅故障排除初始同步。
