Nacos配置中心使用

一. 前言

1. nacos相关文章

2. 说明

  • 本文业务项目为SpringBoot项目, 采用spring-boot-starter-web版本为2.2.5.RELEASE
  • 本文spring-cloud-starter-alibaba-nacos-config采用版本为2.2.5.RELEASE
    • 特别注意: 使用该依赖的情况下, 必须使用bootstrap.properties或bootstrap.yml配置nacos信息 , 否则不生效
  • 本文nacos服务端不使用数据库的表存储
  • 如有疑问, 请查看官方文档: https://nacos.io/zh-cn/docs/what-is-nacos.html
  • nacos源码: https://github.com/alibaba/nacos/releases

二. 搭建nacos服务端

1. 前提

1.1 项目所在环境需先安装jdk

 - Windows环境安装jdk: https://blog.csdn.net/weixin_42109012/article/details/94388518
 - Linux环境安装jdk: https://blog.csdn.net/qq_47249564/article/details/126283675

1.2 获取nacos服务端安装包

到 nacos 的 github 网站中下载, 下载链接:https://github.com/alibaba/nacos/releases
在这里插入图片描述

如上图, .zip 包用于 Windows系统,.tar.gz 包用于 Linux 系统

2. Windows环境部署

2.1 下载nacos-server-2.2.2.zip解压

在这里插入图片描述
在这里插入图片描述

目录说明:

  • bin: 脚本命令
  • conf: 配置文件
  • target: 存放nacos-server.jar

注: nacos服务端默认端口为8848, 启动时端口冲突可到/conf/application.properties中修改端口
在这里插入图片描述

2.2 修改集群模式为单机(非必须)

集群模式下启动会报错, 我们使用单机模式进行测试
使用编辑器打开/bin/startup.cmd文件, 修改MODE值为 standalone
在这里插入图片描述

2.3 启动项目

  • 若修改了startup.cmd中的mode为standalone, 则直接双击startup.cmd即可启动项目
  • 若未修改startup.cmd文件, 则可在bin目录下打开cmd控制台, 执行
    startup.cmd -m standalone

启动后效果
在这里插入图片描述
如图所以表示启动成功. 其中会打印出nacos控制台访问地址. 标准访问地址如下

http://localhost:8848/nacos/index.html

注:

  1. 若使用数据库或nacos安装包需要登录认证, 默认的登录账号密码为(nacos/nacos)

3. linux环境部署

3.1 下载nacos-server-2.2.2.tar.gz解压

将nacos包传到 /usr/local/下解压

cd /usr/local

zxvf nacos-server-2.2.2.tar.gz

3.2 修改集群模式为单机(非必须)

编辑/bin/startup.sh文件, 修改MODE值为 standalone

3.3 启动项目

  • 若修改了startup.sh中的mode为standalone
    • sh startup.sh
  • 若未修改startup.sh中的mode
    • sh /usr/local/nacos/bin/startup.sh -m standalone

4. 控制台页面

在这里插入图片描述

三. 创建业务项目及配置

1. 创建业务SpringBoot业务项目

创建项目nacos-config-study, 项目结构如下

在这里插入图片描述
注: 配置文件为bootstrap.yml (或bootstrap.properties), 因为springboot的nacos客户端 (spring-cloud-starter-alibaba-nacos-config)初始化会 先以 application.yml和application.properties, 故不能使用application的配置文件来指定nacos的属性

2. 添加spring-cloud-starter-alibaba-nacos-config依赖和spring-boot-starter-web依赖

添加依赖如下

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- nacos客户端依赖包(配置中心) -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
    </dependencies>

在这里插入图片描述

3. 准备测试代码

3.1 新增测试controller

package com.chenlongji.nacosconfigstudy;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author clj
 */
@RestController
@RefreshScope
public class ConfigTestController {
    @Value("${user.name:admin}")
    private String name;

    @Value("${user.age:18}")
    private Integer age;

    // 接口访问地址: http://localhost:8118/getNacosConfig
    @GetMapping("/getNacosConfig")
    public String getNacosConfig (){
        return "nacosConfig: name=" + name + ", age=" + age;
    }

}

注:

  1. @Value为spring原生的注解, 需要有默认值, 避免项目启动报错
  2. @RefreshScope为spring-cloud的注解, 用于自动刷新配置的值

3.2 修改配置文件bootstrap.properties

# 端口
server.port=8118
# 应用名
spring.application.name=nacos-config-study
# 指定nacos服务端地址
spring.cloud.nacos.config.server-addr=localhost:8848

四. 添加配置文件测试

在nacos控制台添加nacos-config-study.properties配置文件

在这里插入图片描述

文件名说明:

  1. 在 Nacos Spring Cloud 中,dataId 的完整格式如下:
    ${prefix}-${spring.profiles.active}.${file-extension}
    a. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
        拓展: (旧版本)若使用spring.application.name时环境变量中还有spring.application.group的值, 则prefix为{spring.application.group}:{spring.application.name}
    b. spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 $ {prefix}.${file-extension}
    c. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。如 yml. 注意: 配置文件后缀(在bootstrap.yml或在bootstrap.properties配置文件中才会生效)

启动nacos-config-study项目访问

启动项目, 访问地址: http://localhost:8118/getNacosConfig
在这里插入图片描述

五. 更多

1. 命名空间使用

在这里插入图片描述
在这里插入图片描述

项目指定命名空间
在这里插入图片描述
切记设置了 spring.profiles.active时, dataId需要带有命名空间的名字

2. 多配置文件/公共配置文件使用

使用详情: Nacos配置中心用法详细介绍-4、共享配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值