我正在一个有很多Node.js服务器的项目中工作。 我们没有在每个服务器中保存一个Json配置文件,而是获得了一个Zookeeper实例,该实例保存了所有服务器的配置。 当服务器启动时,或者在api调用的情况下需要配置路径时,它会知道zookeeper路径并根据请求密钥,服务器类型等来获取适当的配置值。 除此之外,我们还有一个Zookeeper WebUi,它可以帮助我们根据需要设置和更改配置,而不是使用cli。
我的问题是:
1)我认为Zookeeper是一个过高的规格,它包含许多我们不使用的功能。
2)它不稳定,动物园管理员有时每隔一段时间就会突然断开连接,甚至将其放置在docker容器中也会导致重新连接服务器的问题。
3)我们不知道如何将节点的值与旧值进行一次比较,以防某些1更改了它们的值,我们需要对节点的版本进行控制,如果某些1在更改节点时出错了,我们不知道如何回头。
4)如果我们有一个巨大的配置节点,并且想要替换其中的某些值,则我们将无法知道发生了什么变化,或者是否用新值覆盖了一些我们需要的旧值。
我的问题是: 1)我错了吗,动物园管理员使用的工具正确吗,使用错了吗?
2)什么是解决我问题的最佳工具?
3)Consul,Etcd在这里是否是正确的选择?还是我们应该使用简单的K / V DB,例如Mongo,RedisDb