SpringBoot整合nacos的步骤

Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
作为服务注册中心:
  1. 首先,修改pom.xml文件,引入 Nacos Discovery Starter。

     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
    
  2. 在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址

     spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
     spring.application.name=nacos-example
    
  3. 在启动类上使用 @EnableDiscoveryClient 注解开启服务注册与发现功能

     @SpringBootApplication
     @EnableDiscoveryClient
     public class ProviderApplication {
    
     	public static void main(String[] args) {
     		SpringApplication.run(ProviderApplication.class, args);
     	}
    
     	@RestController
     	class EchoController {
     		@GetMapping(value = "/echo/{string}")
     		public String echo(@PathVariable String string) {
     				return string;
     		}
     	}
     }
    
  4. 启动nacos服务器即可

Nacos注册中心详细使用步骤

作为配置中心:

使用方法

  1. 首先,修改pom.xml文件,引入 Nacos Config Starter。

     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     </dependency>
    
  2. 在应用的 /src/main/resources目录下创建 bootstrap.properties 并配置文件中配置 Nacos Config 元数据

     spring.application.name=nacos-config-example
     spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    
  3. 需要给配置中心默认添加一个 数据集(Data Id) 默认规则:微服务名.properties

  4. 微服务名.properties 中添加任何配置信息

  5. 动态获取配置(如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置)

    @RefreshScope:动态获取并刷新配置

    @Value("${配置项名}"):获取配置

     @RefreshScope
     class SampleController {
    
     	@Value("${user.name}")
     	String userName;
    
     	@Value("${user.age}")
     	int age;
     }
    

Nacos配置中心详细使用步骤

细节

  • 命名空间:配置隔离—默认:public(保留空间)

    • 开发(dev)、测试(test)、生产(prod):利用命名空间来做环境隔离
    注意:在bootstrap.properties上需要配置使用哪个命名空间下的配置
    # d4cf8a58-7d39-42a9-9ee9-20d0a2c65e62 为命名空间的id
    spring.cloud.nacos.config.namespace=d4cf8a58-7d39-42a9-9ee9-20d0a2c65e62
    
    • 每一个微服务之间互相隔离,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置
  • 配置集:所有配置的集合

  • 配置集ID:类似文件名 Data Id 微服务名.properties

  • 配置分组:默认所有的配置集都属于:DEFAULT_GROUP

    注意:在bootstrap.properties上需要配置使用哪个配置分组下的配置
    # dev 为配置分组
    spring.cloud.nacos.config.namespace=dev
    
    项目中的使用:每个微服务创建自己的命名空间,使用配置分组区分环境
  • 同时加载多个配置集

    • 微服务的任何配置信息,任何配置文件都可以放在配置中心中
    • 只需要在bootstrap.properties说明加载配置中心中哪些配置文件即可
    spring.application.name=gulimall-coupon
    
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.namespace=d4cf8a58-7d39-42a9-9ee9-20d0a2c65e62
    # 默认命名空间使用 prod 分组下的配置
    spring.cloud.nacos.config.group=prod
    
    spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
    spring.cloud.nacos.config.extension-configs[0].group=dev
    # 允许动态刷新
    spring.cloud.nacos.config.extension-configs[0].refresh=true
    
    spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
    spring.cloud.nacos.config.extension-configs[1].group=dev
    spring.cloud.nacos.config.extension-configs[1].refresh=true
    
    spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
    spring.cloud.nacos.config.extension-configs[2].group=dev
    spring.cloud.nacos.config.extension-configs[2].refresh=true
    
    • @Value、@ConfigurationProperties 以前SpringBoot从配置文件中获取值的方法都能使用
    配置中心有的优先使用配置中心中的,没有的就使用当前应用中的配置

你可能感兴趣的:(spring,boot)