Nacos配置管理

微服务的配置一旦更新则需要重启服务,但是在生产环境下服务器特别多,修改十分复杂。服务重启的影响也十分大。

Nacos:配置管理服务

在Nacos控制台中新建配置:填写配置名称【服务名称-环境.后缀】,yaml结尾,配置内容只填写核心有热更新需求的配置。

 

配置获取的步骤:

从bootstrap.yml【优先级比application.yml高】中先读取nacos地址,再读取nacos中的对应的配置文件【nacos中对应配置文件的名称可以从bootstrap.yml中的配置信息获得】,最后与本地配置文件合并。

统一配置管理

(1)引入Nacos的配置管理客户端依赖

<!--nacos配置管理依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        

(2)在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
      config:
        file-extension: yaml #文件后缀名

【删除userservice配置文件中已经在bootsrap.yml中存在的配置】

 验证是否能获取到nacos配置文件中的信息。

package cn.itcast.user.web;

import cn.itcast.user.pojo.User;
import cn.itcast.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @Value("${pattern.dateformat}")
    private String dateformate;

    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformate));
    }

    /**
     * 路径: /user/110
     *
     * @param id 用户id
     * @return 用户
     */
    @GetMapping("/{id}")
    public User queryById(@PathVariable("id") Long id) {
        System.out.println(id);
        return userService.queryById(id);
    }
}

 

将配置交给Nacos管理的步骤

(1)在Nacos中添加配置文件,配置文件名为:服务名称-当前环境.文件后缀名

(2)在微服务中引入nacos的config依赖

(3)在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。

  这些决定了程序启动时去nacos读取哪个文件

 

posted @ 2023-06-20 21:24  佛系粥米  阅读(71)  评论(0编辑  收藏  举报