Nacos配置中心

最佳实践:


Namespace:代表不同环境,如开发、测试、生产环境。
Group:代表某项目,如XX医疗项目、XX电商项目
DataId:每个项目下往往有若干个工程(微服务),每个配置集(DataId)是一个工程(微服务)的主配置文件

 

 

 

 

启动权限:修改application.properties

 

 

 

 

搭建nacos-config服务

 

读取下图 com.config.nacos.redis 配置文件信息

 

 

第一步:

<!--Nacos config依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

 

第二部:添加bootstrap.properties


spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=user-service
spring.cloud.nacos.config.namespace=da085e59-fac2-4ca2-a488-feaf866f4857
# 开启动态刷新配置,否则配置文件修改,工程无法感知
spring.cloud.nacos.config.extension-configs[0].data-id=port.properties
spring.cloud.nacos.config.extension-configs[0].refresh=true
复制代码
推荐
server.port=80 spring.application.name=user-service spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos spring.cloud.nacos.discovery.namespace=public spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.redis.host=127.0.0.1 spring.redis.port=6379 mybatis-plus.mapper-locations=classpath:/mapper/**/*Mapper.xml mybatis-plus.configuration.map-underscore-to-camel-case=true
复制代码
复制代码
spring:
  application:
  # 会自动根据服务名拉取dataid对应的配置文件。  如果dataid跟服务名不一致 就需要手动指定dataid
  # 跟服务名相同的dataid的配置文件,称之为默认的配置文件
  # 除了默认的配置文件 ,其他配置文件必须写上后缀
    name: com.config.nacos.redis
  cloud:
    nacos:
      server-addr: 192.168.43.66:8848
      config:
        username: vnprd
        password: 123456
          # Nacos客户端 默认是Properties的文件扩展名 (只针对默认配置文件和profile)
          # 一旦修改成了非Properties格式,则必须通过file-extension进行设置
        file-extension: yaml
          #refresh-enabled: false   nacos客户端将无法感知配置的变化
        namespace: d67266fb-32f1-46fa-9c55-a79d5090c7a6        # 根据命名空间读取  此处不能使用 dev  要使用dev 对应的ID
        group: vn             # 根据group读取  默认Default-group
        shared-configs:
          - data-id: com.config.nacos.order.yaml  #[0]
            group: vn         #group:  默认是Default-group
            refresh: true
          - data-id: com.config.nacos.order.yaml #[1]
            refresh: true
        extension-configs[0]:
          data-id: com.config.nacos.order02.yaml
          group: vn           #group:  默认是Default-group
          refresh: true

# 配置文件的优先级(优先级大的会覆盖优先级小的, 并且会形成互补)
# profile()> 默认配置文件(默认配置文件:服务名称和配置文件Data ID名称相同)>extension-configs(下标越大优先级就越大)>shared-configs(下标越大优先级就越大)
复制代码

 

 

第三步:spring-cloud-starter-alibaba-nacos-config 支持配置的动态更新,可以使用以下代码进行测试

复制代码
package com.config.nacos;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertySource;

import java.util.concurrent.TimeUnit;

/**
 * @author vans on 2022/2/21 18:42
 */

@SpringBootApplication
@Slf4j
public class NacosConfigApplication {

    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext applicationContext =
                SpringApplication.run(NacosConfigApplication.class, args);

        while (true){

            // 读取nacos配置中心信息
            // nacos客户端 每10ms去 注册中心进行判断,  根据 客户端MD5和服务的MD5 是否相等,相等就不读取配置信息,不相等就读取配置信息
            String name = applicationContext.getEnvironment().getProperty("name");

            log.info(name);

            TimeUnit.SECONDS.sleep(4);
        }
    }

}
复制代码

 

posted @   VNone  阅读(406)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示