# 《Seckill秒杀系统》第101章:实现配置动态共享

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:了解整合配置中心实现配置动态共享的落地实现方案,熟练掌握业务系统整合Nacos配置中心的方法与落地方案,并掌握整合配置中心后,实现配置动态共享的落地方案。并能够灵活将实现方案应用到自身实际项目中。

大家好,我是冰河~~

虽然秒杀系统已经整合了Nacos配置中心,并实现了配置动态刷新,但是此时各个微服务中的配置有些是可以共享的,有些是自己独享的。这些配置还是散乱存储在各个微服务对应的Nacos中,并没有减轻多少维护的成本。

# 一、前言

细心的小伙伴可能已经发现了,之前我们将微服务的配置放入了Nacos,也实现了配置的动态刷新功能,但是此时秒杀系统中各个微服务的配置还是全量并且散乱存储在各自的Nacos配置中,并没有将这些配置中共有的部分抽取出来形成公共部分,实际上,并没有减轻多少维护成本。

# 二、本章诉求

将秒杀系统中存储到Nacos中的配置进行拆分,将各个微服务中共用的配置抽取出来形成公共部分,以便每个微服务共享,进一步降低服务配置的成本。

# 三、实现配置共享

一般情况下,开发项目的过程中会包含:开发环境、测试环境、预发布环境和生成环境,每个环境中的配置大部分是相同的,有少部分配置不同,如果我们能够将大部分相同的配置抽取出来,让同一个微服务在不同的环境中共享,则能够大大降低我们的维护成本。

另外,如果使用的是相同的技术栈的话,对于每个微服务来说,可能大部分的配置也是相同的,如果我们将这些相同的配置抽取出来让各个微服务共享,则能够进一步降低维护成本。

所以,实现配置共享可以从 单服务多环境配置和多服务配置 两个角度来思考。

# 3.1 单服务多环境实现配置共享

本节,我们以用户微服务为例实现单服务多环境的配置共享,其他微服务的实现方式与用户微服务相同。具体实现步骤如下所示。

(1)在Nacos中新建一个以seckill-user.properties为Data ID的配置,并且将用户微服务在各个环境中共有的配置复制进去,如图101-1所示。


假设用户微服务在多个环境下的公共配置如下所示。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码