1. 安装部署nacos

(1)首先到nacos官网下载安装包:

https://nacos.io/download/nacos-server/?spm=5238cd80.72a042d5.0.0.5bc0cd36xAvyuu

(2)解压安装包,进入conf文件夹,找到mysql-schema.sql文件,该文件是数据库建表语句,创建一个数据库,执行该文件,
(3)在conf文件夹中,找到application.properties文件,修改数据库连接相关配置信息;
(4)进入bin文件夹,执行启动脚本:

sh startup.sh -m standalone

(5)启动之后,进入nacos管理页面,登陆地址:http://IP:8848/nacos, 账号:nacos,默认密码:nacos;
(6)到此,部署完成。

  1. 项目模块配置nacos信息

(1)登陆nacos,创建命名空间,命名空间是用来隔离环境使用,比如dev、test、prod等环境;
(2)将启动类上的@EnableEurekaClient注解去掉
(3)pom文件中,将Eureka引入的包注释掉,引入nacos的包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>

(4)创建bootstrap.yml相关的配置文件
在这里插入图片描述
(5)配置信息

spring:
  cloud:
    nacos:
      discovery:
        server-addr: IP:8848                        -- nacos地址
        namespace: test        -- 命名空间ID
      username: nacos                                          -- nacos的登录账号
      password: nacos                                          -- nacos的登录密码

(6)到此完成

  1. 配置nacos作为配置中心

(1)引入配置中心相关包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>

(2)增加配置中心配置

spring:
  cloud:
    nacos:
      discovery:    -- 注册中心配置
        server-addr: IP:8848                        -- nacos地址
        namespace: test       -- 命名空间ID
      config:      -- 配置中心配置
        server-addr: IP:8848                        -- nacos地址
        namespace: test        -- 命名空间ID
        file-extension: yaml                                   -- 配置文件类型
      username: nacos                                          -- nacos的登录账号
      password: nacos                                          -- nacos的登录密码

(3)在nacos管理页面增加配置信息,比如项目名称为demo,则在配置中心-》配置列表,选择相应的命名空间,新增配置,在新增配置页面dataId 设置为demo,格式为yaml,则将除nacos的配置,就可全部移动到nacos配置中心中维护,如下图:
在这里插入图片描述
(4)实现配置中心配置动态刷新:程序中获取配置信息,按照@Value 注解获取,如果需要动态获取,则需要在类上增加@RefreshScope注解,如下:

@RefreshScope
@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {

    @Value("${test.value}")
    private String active;

    @Value("${wx.appid}")
    private String appid;

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public R get(){
        return new R("active:"+active+"---appid"+appid);
    }
}
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐