侧边栏壁纸
博主头像
憨憨大头个人博客博主等级

心存希冀,目有繁星

  • 累计撰写 110 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

springboot实现nacos配置文件管理

Administrator
2024-09-02 / 0 评论 / 0 点赞 / 39 阅读 / 8469 字

使用

依赖引入

需要在项目中加入spring-cloud-starter-alibaba-nacos-config的Maven依赖。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

本文章采用springboot版本是2.0.4.RELEASE,alibaba-nacos-config版本0.2.1.RELEASE

大致版本如下:

Spring Boot版本Spring Cloud Alibaba Nacos Config版本
2.0.x0.2.x
2.1.x0.2.x
2.2.x0.2.x
2.3.x1.2.x
2.4.x1.2.x
2.5.x1.2.x

请注意,这只是一个大致的对照表,具体的版本兼容性可能会有所变化。建议查阅官方文档以获取更详细和准确的信息。

官方版本说明地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

下载nacos服务

下载地址:https://github.com/alibaba/nacos

image-20230717151349574

#找到下载目录用下面命令启动,standalone表示单节点
./startup.cmd -m standalone

打开nacos服务地址

打开nacos可以看到dataId,Group和命名空间

  • DataId是Nacos中用于标识配置的唯一标识符。它可以是任何字符串,并且用于在Nacos中唯一标识一个配置项。通过指定DataId,可以获取或更新相应的配置信息。
  • Group是Nacos中用于对配置进行分组的概念。它可以帮助用户对配置项进行分类管理。多个配置项可以属于同一个Group,并且一个配置项也可以属于多个Group。通过指定Group,可以更方便地对配置项进行管理和操作。
  • Namespace是Nacos中用于对配置和服务进行隔离的概念。它可以帮助用户在多个环境中共享Nacos实例,同时保持配置和服务的独立性。每个Namespace都有自己的配置和服务注册表,并且可以设置不同的权限和访问控制策略。通过使用Namespace,可以实现不同环境中的配置隔离和管理。

注意:

在运行时必须使用 bootstrap.properties/ootstrap.yaml配置文件配置nacos server地址,同时,spring.application.name值必须与Nacos中配置的Data Id匹配(除了.properties或者.yaml后缀)

DataId默认使用 spring.application.name 配置跟文件扩展名结合(配置格式默认使用.properties)

GROUP 不配置默认使用 DEFAULT_GROUP

测试nacos配置

服务端:

image-20230717152314728

新增配置example.yaml, 并给予属性false

测试端:

增加bootstrap.yml

spring:
  application:
	#服务名称
    name: bxkc-test1
  cloud:
    nacos:
      config:
      	#服务地址
        server-addr: 127.0.0.1:8848
        namespace:
        group: DEFAULT_GROUP
        #文件后缀
        file-extension: yaml
        #可以配置多个生效配置文件
        shared-dataids: example.yaml

注意:使用bootstrap优先加载配置文件读取nacos配置

加载顺序 :

  • bootstrap.>application.
  • .yml>.properties

覆盖原则:

  • 后加载的覆盖先加载的配置文件
  • bootstrap不会被application覆盖

测试接口

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache}")
    private boolean useLocalCache;

    /**
     * http://localhost:8080/config/get
     */
    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }
}

useLocalCache是nacos配置属性,若获取成功则代表配置成功

请求测试通过:

image-20230717153630075

@RefreshScope标识实时刷新,当我们修改了nacos的配置,会实时把bean更新

测试项目地址:https://github.com/nacos-group/nacos-examples/tree/master/nacos-spring-cloud-example/nacos-spring-cloud-config-example

Nacos服务器开启鉴权

在Nacos中设置账户和密码可以通过以下步骤进行:

  1. 打开Nacos的配置文件(nacos/conf/application.properties或nacos/conf/application.yml)。

  2. 在配置文件中找到以下配置项:

    # Enable authentication
    nacos.core.auth.enabled=false
    
  3. nacos.core.auth.enabled的值改为true,启用身份验证。

  4. 保存配置文件并重启Nacos。

  5. 打开Nacos的登录页面(默认为http://localhost:8848/nacos/),输入默认的用户名(nacos)和密码(nacos)进行登录。

  6. 在登录成功后,点击右上角的用户名,选择“系统管理” -> “账号信息”。

  7. 在账号信息页面中,可以修改默认的用户名和密码,并设置新的账号和密码。

  8. 修改完成后,保存更改并重新登录。

详细鉴权验证参考文档:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

0

评论区