如何启动Arango 3.1.8集群,其中节点使用arangod.conf文件提供多个角色

时间:2017-01-20 19:05:20

标签: arangodb

我已经配置了三个虚拟机(通过Azure),所有虚拟机都运行Ubuntu 16.04。每个VM都运行ArangoDB 3.1.8。

虽然我可以让单台机器成功运行Arango并访问UI,但我似乎无法使用 / etc / arangodb3 下的arangod.conf文件正确聚类它们。

理想情况下,我想在每台计算机上运行所有三个角色:代理,协调员和主要角色。虽然从命令行运行(抱歉,来自Windows后台),这似乎是可行的,但如何使用配置文件来完成?

到目前为止,我在arangod.conf中有这个:

[database]
directory = /var/lib/arangodb3

# maximal-journal-size = 33554432

[server]
endpoint = tcp://[::]:8529
endpoint = tcp://[::]:5001

authentication = true

# gather server statistics
statistics = true

uid = arangodb


[javascript]
startup-directory = usr/share/arangodb3/js
app-path = /var/lib/arangodb3-apps

[log]
level = info
file = /var/log/arangodb3/arangod.log

[agency]
id = 0
size = 3
supervision = true
activate = true

[cluster]
my-address = tcp://full_dn_to_server1:8529
my-local-info = myarango1

my-role = COORDINATOR; PRIMARY

agency-endpoint = tcp://full_dn_to_server1:5001
agency-endpoint = tcp://full_dn_to_server2:5001
agency-endpoint = tcp://full_dn_to_server3:5001

然后我计划在所有三台服务器上使用此文件,并更改cluster.my- *和agency.id属性。

我查看了以下链接以获取帮助: https://docs.arangodb.com/3.0/Manual/Deployment/Distributed.html https://raw.githubusercontent.com/ArangoDB/deployment/publish/Azure_ArangoDB_Cluster.sh

1 个答案:

答案 0 :(得分:3)

您需要每个节点的配置文件。每个人都有。即agent.conf,dbserver.conf和coordinator.conf。每个人都需要拥有自己的端点。所以上面就是你在所有三台只有端点5001的机器上的agency.conf。 现在你仍然需要coordinator.conf和dbserver.conf。 下面的3.1部署文档包含所有3种具有必要命令行参数的arangod实例: https://docs.arangodb.com/3.1/Manual/Deployment/Distributed.html 实质上,您需要将任何--<domain>.<parameter> <value>参数转换为各个conf文件中的section条目。 所以--agency.activate true --agency.endpoint tcp://some-host:port --agency.size会变成

[agency]
size = 3
endpoint = tcp://some-host:port
activate = true

让我们从文档中获取一个协调员命令行:

arangod --server.authentication=false --server.endpoint tcp://0.0.0.0:8531 --cluster.my-address tcp://192.168.1.3:8531 --cluster.my-local-info coord1 --cluster.my-role COORDINATOR --cluster.agency-endpoint tcp://192.168.1.1:5001 --cluster.agency-endpoint tcp://192.168.1.2:5001 --cluster.agency-endpoint tcp://192.168.1.3:5001 --database.directory coordinator 

这会变成

[server]
authentication = false
endpoint = tcp://0.0.0.0:8531

[cluster]
my-address = tcp://192.168.1.3:8531
my-local-info = coord1
my-role = COORDINATOR
agency-endpoint = tcp://192.168.1.1:5001
agency-endpoint = tcp://192.168.1.2:5001
agency-endpoint = tcp://192.168.1.3:5001

[database]
directory coordinator

等等。并且您需要在每台计算机上使用预期的配置文件启动3个arangod进程。即。

arangod -c /etc/arangodb3/agent.conf
arangod -c /etc/arangodb3/coordinator.conf
arangod -c /etc/arangodb3/dbserver.conf

此外,您可能会考虑在https://github.com/neunhoef/ArangoDBStarter

上考虑一下MaxNeunhöfer的arangodb首发