我正在寻找一种使用微服务架构(.NET Core)来管理大型系统中多个模块的配置文件的方法。
目前我们有5个模块和计数。每个模块包括2个项目(例如UI和API)。每个项目有不同的配置,为3个环境开发,分期,生产。
5个模块x2个项目x3环境=30个配置文件。
对于所有开发环境,许多项目都需要重复相同的配置值(例如,共享包需要配置)。
在大多数情况下,每个项目和环境都需要相同的配置,但有时是不同的,有时完全是特定的。
情况只会变得更糟。更多的模块将被添加,配置文件将变得更大。我正在考虑的一个解决方案是编写一个脚本,在所有配置文件中进行查找和替换,该脚本基于一个主配置文件,该文件具有所有项目和环境的所有值。
但是,即使这样,我也不确定如何布局主配置文件,也不清楚哪些配置键属于哪个项目,这似乎令人望而生畏。
这变得很难管理,我想知道是否有人有一个很好的过程来管理这件事?
发布于 2019-08-29 13:48:11
在微服务体系结构中,常见的配置是令人讨厌的。问题的关键是,它们应该是独立的、独立的功能单元。如果一个或多个人正在做相同的事情,那么您没有正确地细分您的域。
这方面的一个例外是插装:日志记录、分析、跟踪等等。如果这就是您在这里讨论的内容,那么您可以通过多种方法来处理它。
instrumentation.json这样的文件,将它放在一个公共共享位置,然后在Program.cs中:
config.AddJsonFile(@"\path\to\instrumentation.json",( CreateDefaultWebBuilder() ConfigureAppConfiguration(builderContext,config) => {=>可选: false,reloadOnChange: true) }) .Run();
您甚至可以为该工具拥有特定于环境的JSON:
config.AddJsonFile($@"\path\to\instrumentation.{env.EnvironmentName}.json",可选: IHostingEnvironment : true,reloadOnChange: true)发布于 2020-04-24 15:18:16
它正是为管理多个环境下的微服务配置而设计的。
发布于 2019-08-28 20:03:16
https://stackoverflow.com/questions/57699189
复制相似问题