Nacos

注册中心

版本

使用的版本

spring.cloud.alibaba nacos
2.1.0.RELEASE NACOS1.3.2

依赖

<!--spring boot 2.2.2-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>${spring.boot.version}</version>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>${spring.cloud.version}</version>
</dependency>
<!--Spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>${spring.cloud.alibaba.version}</version>
</dependency>

...

<!-- 子工程引入 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

配置文件

bootstrap.yml

spring:
  application:
    name: sunams-tasks
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      url: jdbc:oracle:thin:@localhost:1521:orac
      driver-class-name: oracle.jdbc.driver.OracleDriver
      username: gdf
      password: sdfsf
      # 初始化,最小,最大连接数
      initialSize: 3
      minidle: 3
      maxActive: 18
      # 获取数据库连接等待的超时时间
      maxWait: 60000
      # 开启Druid监控
      filters: stat,wall,config
      web-stat-filter:
        enabled: true

application.yml

server:
  port: 9099

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # SQL日志打印
    call-setters-on-nulls: true
    jdbc-type-for-null: 'null' #允许SQL赋值null 注意:单引号

启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableScheduling
public class HunTasksApplication {

    public static void main(String[] args) {
        SpringApplication.run(HunTasksApplication.class, args);
    }
}

配置中心

版本

使用的版本

spring.cloud.alibaba nacos
2.1.0.RELEASE NACOS1.3.2

依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

改造配置文件

删除application.yml文件
修改 bootstrap.yml,添加注册中心地址

使用nacos作为配置中心时,需要创建一个bootstrap.yaml和application.yaml两个配置文件,bootstrap.yaml的优先级高于application.yaml,加载时实现加载bootstrap.yaml中的相关配置

指定spring.profiles.active来配置不同的环境,读取不同的配置文件

spring:
  application:
    name: tunil-account
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        file-extension: yaml
  profiles:
    active: dev # 环境逻辑组 dev/test/prod

Nacos 规则: {cloudalibaba-config-service}-{spring.profiles.active}.{file-extension}
当前获取的配置文件是tunil-account-dev.yaml

配置中心增加配置

  • yaml后缀不要遗漏

动态刷新

  • 配置@RefreshScope
@RestController
@Slf4j
@RefreshScope //动态刷新
public class ConfigController {
    //@NacosValue(value = "${server.port}", autoRefreshed = true)
    @Value("${server.port}")
    private String info;     //该属性值是从nacos配置中心拉取到的配置

    @GetMapping("/testConfig")
    public String testConfig(){
        return info;
    }
}

当配置发生改变时自动更新

posted @ 2022-07-15 19:56  熊云港  阅读(82)  评论(0编辑  收藏  举报