푰’풎 풉풉품, 푰 풂풎 풂 품풓풂풅풖풂풕풆 풔풕풖풅풆풏풕 풇풓풐풎 푵풂풏풋풊풏품, 푪풉풊풏풂.
푺풉풄풐풐풍: 푯풐풉풂풊 푼풏풊풗풆풓풔풊풕풚 푳풆풂풓풏풊풏품: 푰’풎 풄풖풓풓풆풏풕풍풚 풍풆풂풓풏풊풏품 풅풆풔풊품풏 풑풂풕풕풆풓풏, 푳풆풆풕풄풐풅풆, 풅풊풔풕풓풊풃풖풕풆풅 풔풚풔풕풆풎, 풎풊풅풅풍풆풘풂풓풆 풂풏풅 풔풐 풐풏. 푯풐풘 풕풐 풓풆풂풄풉 풎풆:푽푿 푴풚 풃풍풐품: 풉풕풕풑풔://풉풉품풚풚풅풔.풃풍풐품.풄풔풅풏.풏풆풕/ 푷풓풐풇풆풔풔풊풐풏풂풍 풔풌풊풍풍풔:풎풚 풅풓풆풂풎
1-1:环境说明
因为版本不一样,总会有各种问题,所以这里我给出了我的所有的环境。
nacos: 1.1.4maven:3.6.3pom.xml:里面有springcloud等一系列的版本
docker-compose.yaml,dokcer构建nacos的配置UTF-8 1.8 1.8 4.12 1.2.17 1.16.18 5.1.47 1.1.16 1.3.0 org.springframework.boot spring-boot-dependencies2.2.2.RELEASE pom import org.springframework.cloud spring-cloud-dependenciesHoxton.SR1 pom import com.alibaba.cloud spring-cloud-alibaba-dependencies2.1.0.RELEASE pom import mysql mysql-connector-java${mysql.version} com.alibaba druid${druid.version} org.mybatis.spring.boot mybatis-spring-boot-starter${mybatis.spring.boot.version} junit junit${junit.version} log4j log4j${log4j.version} org.projectlombok lombok${lombok.version} true
version: "2" services: nacos: image: nacos/nacos-server:1.1.4 container_name: nacos_test environment: - MODE=standalone volumes: - ./logs/:/home/nacos/logs ports: - "8848:8848"1-2:Nacos *** 作
主要采用namespace+group+dataId的格式完成三个环境的设置。
创建3个命名空间:记住这里的命名空间ID回头要用
分别在不同的命名空间中创建配置,代表3个环境,并设置好需要读取的配置:
config: info: "dataId:nacos-config-client-prod.yaml;group:nacos-group-prod;namespace:099fa140-a9d1-42af-861b-85ae54471703"
类似这样的一共设置3个,那么nacos的设置到这就结束了。 1-3:手动切换nacos环境
传统的我们怎么做呢?像这样:
application.yml:
spring: profiles: active: devbootstrap.yal:
server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 #Nacos服务注册中心地址 config: server-addr: localhost:8848 #Nacos作为配置中心地址 file-extension: yaml #指定yaml格式的配置 namespace: aa0828b7-9470-4b30-a387-5f795528e1af group: nacos-group-dev
如果你要切换到prod环境下,你就得把上面的配置都换掉,换 spring.profiles.active namespace 还有group,那么我就想了,能不能不用手动呢?或者借助什么工具来做呢?事实上是可以的,比如配合maven就可以!
1-4:配合maven实现环境的切换pom.xml:首先在maven配置文件里面,当然了分布式在总的模块pom里面设置就可以了!为了简单,这里就弄两个properties,意思一下就可以了。
application.ymldev dev aa0828b7-9470-4b30-a387-5f795528e1af nacos-group-${activatedProperties} test truetest c16b5823-ed59-48a6-b4af-fa79a17d57e8 nacos-group-${activatedProperties} prod prod 099fa140-a9d1-42af-861b-85ae54471703 nacos-group-${activatedProperties}
spring: profiles: active: @activatedProperties@bootstrap.yml
server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 #Nacos服务注册中心地址 config: server-addr: localhost:8848 #Nacos作为配置中心地址 file-extension: yaml #指定yaml格式的配置 namespace: @nacosNamespace@ group: @nacosGroup@分布式项目里面单个服务模块的pom.xml,不加的话@xx@这个符号无法替换成maven配置里面的数据,这一点要注意:
controllersrc/main/resources true
@RestController @RefreshScope //支持nacos的动态刷新功能 public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo() { return configInfo; } }1-5:测试
首先maven上面出现了这样的可选记号,我们可以选择自己的环境,然后启动项目。
接口:
http://127.0.0.1:3377/config/info
maven切换成dev:
可以发现,这里的文件已经成功切换了,这样就可以做到通过nacos来一键切换环境,并且充分利用nacos的特性。
这里给出项目github地址,因为有的代码并没有给出,主要就是3377这个测试用的和父模块里面的pom
点我跳转github:或者复制地址:https://github.com/21want28k/springcloud.git
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)