Zookeeper 与 Spring Cloud 配置服务器有啥区别?

Posted

技术标签:

【中文标题】Zookeeper 与 Spring Cloud 配置服务器有啥区别?【英文标题】:What's the difference between zookeeper vs spring cloud config server?Zookeeper 与 Spring Cloud 配置服务器有什么区别? 【发布时间】:2016-04-22 12:16:56 【问题描述】:

zookeeper 和 spring 云配置服务器有什么区别?它们都将配置存储在服务器中并使它们可供客户端使用。

什么时候应该使用一个而不是另一个?

【问题讨论】:

【参考方案1】:

zookeeper 和 spring cloud config server 有什么区别?

使用 Spring Cloud Config Server,您可以集中管理所有环境中应用程序的外部属性。配置服务器上的概念与 Spring EnvironmentPropertySource 抽象映射相同,因此它们非常适合 Spring 应用程序但可以用于以任何语言运行的任何应用程序。

Zookeeper 不仅仅是一个分布式配置服务器,它是一个集中式服务,用于几乎 令人眼花缭乱的用例,包括配置管理、同步数据 在服务、领导者选举、消息队列之间,并作为命名 服务。

如果您只想关注配置管理部分,我应该说,它们是同一概念的不同实现。

使用 Spring Cloud Config Server,您拥有一个由(默认情况下)git 存储库支持的配置服务器。每次对该 git 存储库进行新推送时,配置服务器都会知道新的配置值。配置服务器的客户端可以从服务器中提取新的配置值并重新配置自己,或者通过连接到云总线来追求事件驱动的方法。

Zookeeper 的核心是提供一个分层命名空间来存储信息。客户 可以在此层次结构中插入新节点、更改它们或查询它们。此外,他们可以 将监视添加到节点以在它们发生更改时被告知。

什么时候应该使用一个而不是另一个?

在我看来,Spring Cloud 似乎非常适合许多云原生应用程序,尤其是如果您已经在使用 Spring 框架。此外,配置服务器的基于存储库的方法对我来说感觉更自然并且非常灵活,您可以轻松存储通用、特定于应用程序和基于环境的配置值。最后但同样重要的是,Spring Cloud Zookeeper 作为 Spring Cloud 的一部分提供。

【讨论】:

我想知道使用 Spring Cloud Service 与 ZooKeeper 相比有什么缺点 |领事 |阿凯乌斯... 理想情况下,spring 配置服务器由 SVN 和文件系统支持,但生产系统与 SVN / GIT 不同,因此文件系统更适合。您的 DevOps 可以将 svn/git 更改推送到此文件系统 @GonenI 你说得对。我稍微改写了评论。

以上是关于Zookeeper 与 Spring Cloud 配置服务器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用Spring Cloud搭建服务注册中心

为 spring-cloud-bus 设置 zookeeper 主机和端口

以zookeeper为注册中心搭建spring cloud环境bug

以zookeeper为注册中心搭建spring cloud环境bug

3.spring cloud + zookeeper注册中心 + Feign调用案例

Spring Cloud Zookeeper 优雅下线优化