【问题标题】:Spring Cloud Config Server Separate RepositorySpring Cloud Config Server 独立存储库
【发布时间】:2021-08-13 02:15:43
【问题描述】:

我是第一次使用 Spring Cloud Config Server 并且有一个基本的查询。

Spring Config 服务器将配置外部化到单独的 git 存储库。

我为什么要为配置创建一个单独的存储库?

在一个存储库中包含所有应用程序代码和配置的单一存储库是否比仅为配置创建单独的存储库更可取。

我们有多个微服务都存在于同一个存储库中。配置服务器不应该是存在于其他应用程序代码所在的同一存储库中的微服务之一吗?

因此,在我的多模块 gradle 项目中,我可以将 config-server 作为模块之一,并在 config-server 中提供与 git 支持的 url 相同的存储库名称。这是可取的吗?如果是,我应该在哪里保存配置服务器中的配置?内部资源?

谢谢。

【问题讨论】:

  • 不,绝对不建议将其保存在与代码相同的存储库中。如果有人入侵了您的服务器并获取了您的 github 凭据,您是否希望他们能够完全访问您的源代码?
  • @SledgeHammer 如果有人可以访问我的 github 凭据,那么他将可以访问我所有的存储库。如果我将所有代码保存在一个或多个 repo 中会有什么不同?
  • 您不使用 您的 个人凭据来访问应用程序中的配置存储库,而是创建一个仅对您的配置存储库具有读取权限的机器(服务)帐户。

标签: spring spring-cloud-config-server


【解决方案1】:

在使用微服务时,建议为每个微服务拥有一个存储库。配置服务器也是一个微服务,因此它应该放在一个单独的存储库中。

每个微服务都应该有自己独立的代码存储库,并且您的应用程序配置绝不应该与您的源代码在同一个存储库中。

您可以在此处阅读更多相关信息:Heroku 的 The Twelve-Factor App。在这里您可以找到构建微服务时使用的 12 个最佳实践,但对于这个问题,我建议您查看

【讨论】:

  • 您对配置服务器有什么建议?
  • @LucianNut 如果您使用的是 Spring Cloud,最好的解决方案是 Spring Cloud 配置服务器。这个开源项目为故事配置数据提供了许多实现,例如:Git(我认为这是最流行的)、Eureka、Consul 或共享文件系统(不推荐用于中型或大型云应用程序)。
  • @Marina:仅供参考,我听说 Facebook 和 Google 将 monorepos 用于生产微服务(而不是为每个微服务使用单独的 repos)。
猜你喜欢
  • 2020-11-13
  • 2020-07-23
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 2019-12-07
  • 2019-11-24
  • 2019-04-02
相关资源
最近更新 更多