ArangoDB 请求负载均衡

ArangoDB Request Load balancing

我目前正在使用 YCSB 在 ArangoDB 集群 (v3.7.3) 上为我的研究做基准测试,我使用启动程序 (here).

我想了解这样的设置(例如,我使用 4 个虚拟机)是否以及如何帮助平衡请求负载? 如果我有节点 A、B、C 和 D,我告诉 YCSB 节点 A 的 IP,所有请求都转到节点 A...

这意味着如果你想平衡请求负载,集群是不必要的,不是吗?它只对数据复制有意义。

那我将如何处理请求负载?我通常会在我的应用程序中这样做,但如果我使用 YCSB 等现有工具,我就不能这样做......(或者我可以吗?)

感谢您的帮助!

我也遇到了这个问题,最终通过站起来解决了 nginx in front of my cluster, providing a stable, language-independent way to distribute query load. I found nginx surprisingly simple to configure, but take a look at the upstream 模块以获取更多详细信息。

upstream arangodb {
  server coord-1.my.domain:8529;
  server coord-2.my.domain:8529;
  server coord-3.my.domain:8529;
}

server {
  listen                *:80 default_server;
  server_name           _; # Listens for ALL hostnames
  proxy_next_upstream   error timeout invalid_header;
  
  location / {
    proxy_pass          http://arangodb;
  }
}

它并不适合所有人,但在那些你只需要负载平衡并且不想编写一堆代码(最终会很慢)来解析协调器的时候效果很好。

我已经向 ArangoDB 询问了一个本地代理服务器解决方案,但我敢打赌它在他们的待办事项列表中排名较低,因为考虑到大量的配置选项,支持起来可能很棘手。