diff --git a/ch6-cloud/ch6-06-config.md b/ch6-cloud/ch6-06-config.md index 6baec66..be77fd8 100644 --- a/ch6-cloud/ch6-06-config.md +++ b/ch6-cloud/ch6-06-config.md @@ -137,11 +137,13 @@ func main() { 这也就是为什么大公司都会针对自己的业务额外开发一套复杂配置系统的原因。 -TODO,针对真实的配置系统来做分析 - ## 配置版本管理 -TODO +在配置管理过程中,难免出现用户误操作的情况,例如在更新配置时,输入了无法解析的配置。这种情况下我们可以通过配置校验来解决。 + +有时错误的配置可能不是格式上有问题,而是在逻辑上有问题。比如我们写 SQL 时少 select 了一个字段,更新配置时,不小心把丢掉了 json 字符串中的一个 field 而导致程序无法理解新的配置而进入诡异的逻辑。为了快速止损,最快且最有效的办法就是进行版本管理和,并支持按版本回滚。 + +在配置进行更新时,我们要为每份配置的新内容赋予一个版本号,并将修改前的内容和版本号记录下来,当发现新配置出问题时,能够及时地回滚回来。 ## 客户端容错