【问题标题】:Dynamic Configuration Management - Micro Service Architecture动态配置管理——微服务架构
【发布时间】:2020-04-26 12:40:06
【问题描述】:

我正在寻找微服务架构(假设大约有 30 个服务可用),其中包括配置服务,该服务将负责维护剩余 29 个服务的配置。 这样当我更新配置时,它需要相应地广播到所有剩余的 29 个服务。

我看到这个架构(https://dzone.com/articles/dynamic-configuration-management-in-microservice-a)不是动态配置管理,当我在配置文件中进行更改时,它是由 GIT 钩子中的配置服务(Spring Cloud Service)识别的 - 直到这是个好主意

但是然后客户端服务负责从配置服务刷新数据,这里客户端服务如何知道配置改变了?只有配置服务知道来自 GIT Hook 的配置更改。

(即)

1) 用户手动更改 Git 中的配置并提交它
2) GIT HOOK 将配置变更通知给配置服务

预期:

3)那么我觉得配置服务应该通知所有客户端从配置服务更新配置

实际:

3) 相反,我们需要使用 /refresh API 手动触发客户端服务,以便从配置服务更新配置

那么配置服务有没有办法自动将配置更新到客户端服务(即)它将是动态配置管理。

谢谢,
编码器

【问题讨论】:

  • 有很多不同的方法可以处理动态配置。您可以使用Hashicorp Vaultaws parameter store 之类的东西来保留参数。然后,您的应用程序可以确定如何使用它们。这可能是在启动时或在每个请求之前
  • @badger0053 美好的一天,说清楚,当我编辑我的配置文件时,我在其中一个服务(即)配置服务中进行了配置更改,我需要将此广播到其他服务...

标签: java python configuration architecture microservices


【解决方案1】:

我正在创建一个服务名称 mhconfig 来解决这个问题,您有一系列文件,可以应用覆盖,服务通过 gRPC API 提供,您可以获取或订阅它。它还不支持 java 客户端和 git 存储库,但使用 python 客户端和 inotify 观察程序作为参考很容易推断它,所以我鼓励你满足你的要求来改进它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    相关资源
    最近更新 更多