Vespa.ai 利用多个实例来回答查询

Vespa.ai exploit multiple instances to answer queries

我有 Vespa.ai 个包含多个 container/content 节点的集群。在 Vespa 加载数据后,我的应用程序发送查询并从 Vespa 获取数据。我想确保我能很好地利用所有节点,并尽可能快地获取数据。我的应用程序构建 HTTP 请求并将其发送到其中一个节点。
我应该将请求发送给哪个 node/nodes? 如何确保所有实例都参与回答查询?
我应该怎么做才能利用所有集群节点?
Vespa 是否知道将这些请求负载平衡到其他实例以获得更好的性能?

Vespa 是一个 2 层系统:

容器将在 content 节点上进行负载平衡(如果您有多个组),但是由于您将请求发送到 containers,你需要对它们进行负载平衡。

这可以通过您在客户端中编写的代码、VIP、您自己托管的另一层节点(例如 Nginx)或托管负载均衡器(例如 AWS ELB)来完成。

您可以通过添加 &presentation.timing=true&trace.timestamps&tracelevel=5 来调试分布式查询执行 到搜索请求,然后您将在响应中获得跟踪,您可以在其中查看查询是如何分派的以及每个节点用于匹配查询的时间。另见缩放 Vespa https://docs.vespa.ai/en/performance/sizing-search.html