菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
88
0

Spring Cloud Alibaba 教程 | Nacos(四)

原创
05/13 14:22
阅读数 902

Nacos环境隔离

Nacos管理台有一个单独的菜单“命名空间”,里面默认存在一个名为“public”的默认命名空间,我们在使用Nacos时不管是作为注册中心还是配置中心,都是作用在该命名空间之下的,那么这个命名空间到底起着什么作用呢?其实Nacos基于Namespace帮助用户逻辑隔离多个命名空间,这可以帮助用户更好的管理测试、预发、生产等多环境服务和配置,让每个环境的同一个配置(如数据库数据源)可以定义不同的值。

在这里插入图片描述
我们明白了namespace是为了起到了环境隔离作用而出现的,其实不光是namespace,group和Data Id也可以起到环境隔离的作用。Data Id的值为:${spring.cloud.nacos.config.prefix}- ${spring.profile.active}. ${spring.cloud.nacos.config.file-extension},而spring.profiles.active是可以区分不同环境的。所以如何合理使用namespace、group和Data Id去区分不同的环境,是我们在使用Nacos时必须要仔细考虑的一个问题。
在这里插入图片描述

经典案例

Nacos是阿里巴巴工程师编写的,是运用在大规模平台项目当中的,所以站在他们的角度思考问题会让我们更加理解他们这样设计环境隔离的目的。假设我们现在要做一个大平台项目,大平台项目会为各个企业提供服务支持,同时不同的企业还存在不同的子项目,并且每个子项目都需要有多个配置环境,如下图:
在这里插入图片描述
面对这种需求时合理使用Nacos的环境隔离策略更够让我们节省不少的时间成本。

  • 对于不同企业这一层我们可以使用namespace进行区分。
  • 对于企业下面不同子项目我们可以使用group进行区分。
  • 对于每个子项目不同的环境我们可以使用Data Id进行区分。

根据上面的环境隔离策略,假如我们需要添加一个B企业下面的B子项目的nacos-provider模块的测试环境配置,那么可以这样配置:

第一步:添加命名空间B企业。
在这里插入图片描述
第二步:配置列表添加配置文件,group代表项目,Data Id代表模块以及不同的运行环境。
在这里插入图片描述
在这里插入图片描述
第三步:修改nacos-provider模块指定namespace、group和active。
在这里插入图片描述
第四步:运行nacos-provider模块验证结果。
在这里插入图片描述
在这里插入图片描述

第五步:使用启动参数指定环境。这样虽然实现了环境隔离,但是是硬编码的方式,因为我们在bootstrap.yml写死了环境参数,实际开发中应该使用启动参数来指定。

-Dspring.cloud.nacos.config.namespace=bb9f6e91-3455-4020-903f-6a2726284e62
-Dspring.cloud.nacos.config.group=project_B
-Dspring.profiles.active=TEST

在这里插入图片描述

关注公众号了解更多原创博文

Alt

感谢每一位关注的读者朋友,你们的关注是我继续写作与分享的动力!!!

发表评论

0/200
88 点赞
0 评论
收藏