mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 20:52:22 +00:00
update dc
This commit is contained in:
parent
255918a20c
commit
195beabb3f
@ -131,6 +131,8 @@ func main() {
|
||||
|
||||
这也就是为什么大公司都会针对自己的业务额外开发一套复杂配置系统的原因。
|
||||
|
||||
TODO,针对真实的配置系统来做分析
|
||||
|
||||
## 客户端容错
|
||||
|
||||
在业务系统的配置被剥离到配置中心之后,并不意味着我们的系统可以高枕无忧了。当配置中心本身宕机时,我们也需要一定的容错能力,至少保证在其宕机期间,业务依然可以运转。这要求我们的系统能够在配置中心宕机时,也能拿到需要的配置信息。哪怕这些信息不够新。
|
||||
@ -138,3 +140,5 @@ func main() {
|
||||
具体来讲,在给业务提供配置读取的 sdk 时,最好能够将拿到的配置在业务机器的磁盘上也缓存一份。这样远程配置中心不可用时,可以直接用硬盘上的内容来做兜底。当重新连接上配置中心时,再把相应的内容进行更新。
|
||||
|
||||
加入缓存之后务必需要考虑的是数据一致性问题,当个别业务机器因为网络错误而与其它机器配置不一致时,我们也应该能够从监控系统中知晓。
|
||||
|
||||
我们使用一种手段解决了我们配置更新痛点,但同时可能因为使用的手段而带给我们新的问题。实际开发中,我们要对每一步决策多多思考,以使自己不在问题到来时手足无措。
|
||||
|
Loading…
x
Reference in New Issue
Block a user