Warm tip: This article is reproduced from serverfault.com, please click

cluster computing-ArangoDB请求负载平衡

(cluster computing - ArangoDB Request Load balancing)

发布于 2020-11-22 21:19:15

我目前正在为我在ArangoDB群集(v3.7.3)上使用YCSB进行的研究做基准测试,该基准测试是使用starter (在此处)设置的

我想了解类似的设置(例如我使用4个VM)是否以及如何帮助平衡请求负载?如果我有节点A,B,C和D,并告诉YCSB节点A的IP,则所有请求都将发送到节点A ...

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

那我将如何处理请求负载?我通常会在我的应用程序中执行此操作,但是如果使用诸如YCSB之类的现有工具,则无法执行此操作(或者可以吗?)

谢谢你的帮助!

Questioner
Jan-Ole Hübner
Viewed
0
kerry 2020-12-02 05:32:26

我也遇到了这个问题,最终通过将nginx站在我的集群前面来解决了这个问题,从而提供了一种稳定的,独立于语言的方式来分配查询负载。我发现nginx的配置非常简单,但请查看上游模块以了解更多详细信息。

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提供本机代理服务器解决方案,但是我敢打赌它在他们的待办事项清单上很低,因为考虑到大量的配置选项,要支持它可能很棘手。