多环境的配置隔离是配置中心最基础的一个功能之一 。不同的环境配置的值不一样,比如数据库的信息,业务的配置等 。
Spring Boot 多环境配置首先我们来回顾下在Spring Boot中用配置文件的方式怎么进行环境的隔离 。
默认我们都会创建一个Application.properties配置文件,这个文件是不区分环境的,通用 。
为了区分环境我们可以为每个环境创建一个配置文件,比如;
- 开发环境
- application-dev.properties
- 测试环境
- application-test.properties
Apollo 多环境配置既然讲到配置中心,那么我会已目前已经比较成熟的Apollo来进行一个对比,把一些相同的或者不同的点都分析出来,这样大家在选型的时候也能有个参考 。
Apollo的多环境配置是在搭建的时候需要制定好目前支持多少个环境,每个环境下可以分不同的集群,集群这个是可以动态创建的 。
文章插图
选择不同的环境,进行配置的操作,改动的就是这个环境下的配置 。
在客户端接入的时候,通过指定env来获取对应环境下的配置,还有一点就是Apollo中每个环境的配置都是用DB来隔离的,每个环境都有自己的一个ConfigDB 。
Nacos 多环境配置Namespace用于进行租户粒度的配置隔离 。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置 。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等 。
以上是官方对Nacos Namespace的介绍,如果用过Apollo的同学应该知道,在Apollo中的Namespace是配置文件的概念,跟Nacos的概念定义相差太大了 。
而Nacos中配置文件的定义则是Data ID,在学任何一个框架的时候,首先要搞懂的就是它本身的一些概念 。
在Nacos中要实现多环境的隔离,也就是说我们需要创建多个Namespace 。
Nacos的最后一个菜单,名称为:命名空间,点进去我们可以看到下面的列表,可以去创建你想要的空间:
文章插图
public是默认的,我们创建了一个dev环境,这个时候会生成一条数据,我们需要关注的是命名空间ID,为了防止命名空间名称冲突,在保存后会自动生成一个ID,项目中在指定当前环境的时候需要传空间ID,而不是空间名称 。
创建空间后,在配置列表的页面上边我们可以选择不同的空间来进行切换 。然后在对应的空间下创建配置 。
文章插图
最后在我们的项目中,我们是以Spring Boot来进行讲解的,就在application.properties中指定当前项目的空间值即可:
nacos.config.namespace=334139e6-d700-4a7b-ae0d-5ae30abd94a8最好的方式是在部署的时候,通过参数传递,如果你直接写在项目中,那么上线的时候是不是还得修改这个namespace为线上的namespace id 。
Apollo在这块是这样设计的,环境可以配置在磁盘中的配置文件中,就相当于一台机器配置一个环境,那么这台机器上的应用就都是这个环境了,环境跟着机器走,不跟项目走 。
【阿里Nacos多环境配置】
推荐阅读
- 澳大利亚杀死多少日本战俘 澳大利亚废除死刑
- 腾讯会员怎么取消自动续费
- 昙花的花期是什么时候 昙花的花期是多长时间
- 世界上最高的果树是什么 世界上有多少种水果树
- 苏亚雷斯|对比一下职业生涯的轨迹,你会发现苏亚雷斯要比莱万精彩得多!
- 违章停车贴条怎么处理,处罚多少钱 违章停车被贴条没写金额怎么处理
- 日本青森苹果多少钱一个
- 淘宝直播平台费用是多少 淘宝直播卖的东西为什么那么便宜
- 梦到杏树上结了好多红杏 梦见树上结满绿色的杏
- 舒肤佳沐浴露和多芬沐浴露哪个好 氨基酸沐浴露排行榜