Я работаю в проекте, где у нас есть много серверов nodejs.
Вместо того, чтобы хранить файл конфигурации Json на каждом сервере, мы получили экземпляр zookeeper, который содержит конфигурацию для всех серверов.
Когда сервер запускается или ему нужен путь конфигурации в случае вызова API, он знает путь zookeeper и находит правильное значение конфигурации в соответствии с ключом запроса, типом сервера и т. Д.
Кроме того, у нас есть веб-интерфейс zookeeper, который помогает нам настраивать и изменять конфигурацию при необходимости вместо использования cli.
Мои проблемы:
1) Я думаю, что zookeeper - это сверхспек, он содержит много функций, которые мы не используем.
2) Не стабильно, время от времени зоокейпер внезапно отключается, и даже если он находится в док-контейнере, это вызывает проблемы с переподключением к серверам.
3) Мы не знаем, как сравнивать значения узлов со старыми один раз в случае, если некоторые из них изменили их, нам это нужно для контроля версий над узлом, если некоторые из них допустили ошибку при изменении узла, которого мы не знаем как повернуть назад.
4) Если у нас есть огромный узел конфигурации, и мы хотим заменить в нем какое-то значение, мы не можем знать, что изменилось, или если мы переопределим некоторые старые значения, которые нам нужны, новыми значениями.
tl; д-р, мы получили много путаницы при изменении значений нескольких конфигурационных версий
Мои вопросы:
1) Я ошибаюсь, Zookeeper - правильный инструмент и использовал его неправильно?
2) Какой инструмент лучше всего подходит для моей проблемы?
3) Являются ли Consul, Etcd правильными альтернативами здесь? Или мы должны использовать простую K / V DB, такую как Mongo, RedisDb