arangodb - ArangoDB 集群在一个节点故障后停止
问题描述
我有 3 个节点的 ArangoDB 集群。第一个有 service.config :
> ExecStart=/usr/bin/arangodb \
--starter.data-dir=/var/lib/arangodb3/cluster \
--server.storage-engine=rocksdb \
--auth.jwt-secret=/etc/arangodb3/arangodb.secret \
--agents.agency.supervision-grace-period=30 \
--log.file=true \
--log.dir=/var/log/arangodb3/cluster \
--log.verbose
TimeoutStopSec=60
和另外两个节点有:
> ExecStart=/usr/bin/arangodb \
--starter.data-dir=/var/lib/arangodb3/cluster \
--server.storage-engine=rocksdb \
--auth.jwt-secret=/etc/arangodb3/arangodb.secret \
--agents.agency.supervision-grace-period=30 \
--starter.join arangodb01.domain.com \
--log.file=true \
--log.dir=/var/log/arangodb3/cluster \
--log.verbose
它工作正常,直到任何节点停止。在一个节点停止后,不再处理任何请求。我只在“[root@arangodb01 ~]# journalctl -u arangodb”中看到:
>We're master, try to remain it component=arangodb\
>Master changed callback from [arangobd01 IP]:57722 component=arangodb\
>Received GET /hello request from [arangobd02 IP]:38436 component=arangodb
如果只有 2 个节点在集群中工作,是否可以工作?
解决方案
最后我找到了“坏”碎片的原因。对于您在集群中创建的每个集合,请检查集合信息部分中的“replicationFactor”。默认情况下它是 1,如果你在 API 的帮助下创建它,它是“replicationFactor: (cluster only)”
推荐阅读
- laravel - 尝试在 null 上读取属性“degree”
- javascript - 如何访问 Javascript 中数组内的数组内的元素?
- oracle - 触发器中的行的 SUM()(PL/SQL)
- ios - 检查 SwiftUI 中是否存在自定义字体
- firebase-authentication - Firebase createCustomToken() 在本地模拟器中返回无效令牌
- c++ - 在 C++ 中创建擦除()函数的自制副本
- python - 登录 Discord Oauth 后使用 Flask 出现 404 错误
- zapier - 动态字段中使用的卷曲未解析
- android-studio - 如何摆脱 Android Studio 4.1.2 中的应用名称菜单栏
- visual-studio-code - Visual Studio 代码片段选择和变量