Nacos配置管理基础应用

本文介绍Nacos配置管理的基础应用,包括配置管理模型、命名空间管理、配置管理和登录管理等内容。详细展示了如何通过Namespace、group和DataID定位配置集,并提供了获取配置、监听配置变化的示例代码。
摘要由CSDN通过智能技术生成

1、Nacos配置管理基础应用

1.1、Nacos配置管理模型

对于Nacos配置管理,通过Namespace、group、Data ID能够定位到一个配置集。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//使用nacos-client获取远程nacos服务上的配置信息
 //nacos server 地址
 String serverAddr = "127.0.0.1:8848";
 //data id
 String dataId = "nacos-simple-demo.yml";
 //group
 String group = "DEFAULT_GROUP";
 //命名空间
 String namespace = "20dd9cd5-8ce6-4f73-8380-dfa3074ce5a8";
 //获取配置
 Properties properties = new Properties();
 properties.put("serverAddr",serverAddr);
 properties.put("namespace",namespace);
 //获取配置
 ConfigService configService = NacosFactory.createConfigService(properties);
 String config = configService.getConfig(dataId, group, 5000);
 System.out.println(config);

以上代码说明将从地址为127.0.0.1:8848的nacos配置中心获取配置,通过以下信息定位配置集:
namespace:ee247dde-d838-425c-b371-029dab26232f
注意:namespace需要指定id。
group:DEFAULT_GROUP
Data Id:nacos-simple-demo.yml

1.2、命名空间管理

1.2.1、namespace 隔离设计

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

1.2.2、命名空间管理

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

//使用nacos-client获取远程nacos服务上的配置信息
//nacos server 地址
 String serverAddr = "127.0.0.1:8848";
 //data id
 String dataId = "nacos-simple-demo.yml";
 //group
 String group = "DEFAULT_GROUP";
 //命名空间
 String namespace = "20dd9cd5-8ce6-4f73-8380-dfa3074ce5a8";
 //获取配置
 Properties properties = new Properties();
 properties.put("serverAddr",serverAddr);
 properties.put("namespace",namespace);
 //获取配置
 ConfigService configService = NacosFactory.createConfigService(properties);
 String config = configService.getConfig(dataId, group, 5000);
 System.out.println(config);

1.3、配置管理

在这里插入图片描述

1.3.1、配置列表

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置集导出
在这里插入图片描述
在这里插入图片描述
配置集导入
在这里插入图片描述
配置集克隆
在这里插入图片描述

1.3.2、历史版本

在这里插入图片描述
点击回滚:
在这里插入图片描述

1.3.3、监听查询

在这里插入图片描述

package com.demo.nacos;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;
import java.util.concurrent.Executor;

/**
 * Description:
 * Author: 
 * DATE: 2022/1/21 15:08
 */
public class SimpleDemoMain {
    public static void main(String[] args) throws NacosException {
        //使用nacos-client获取远程nacos服务上的配置信息
        //nacos server 地址
        String serverAddr = "127.0.0.1:8848";
        //data id
        String dataId = "nacos-simple-demo.yml";
        //group
        String group = "DEFAULT_GROUP";
        //命名空间
        String namespace = "20dd9cd5-8ce6-4f73-8380-dfa3074ce5a8";
        //获取配置
        Properties properties = new Properties();
        properties.put("serverAddr",serverAddr);
        properties.put("namespace",namespace);
        //获取配置
        ConfigService configService = NacosFactory.createConfigService(properties);
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
        //String dataId, String group, Listener listener
        configService.addListener(dataId, group, new Listener() {
            @Override
            public Executor getExecutor() {
                return null;
            }

            @Override
            public void receiveConfigInfo(String s) {
                //当配置发生变化时的响应
                System.out.println(s);
            }
        });

        // 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。 正式代码中无需下面代码
        while (true) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }
}

1.4、登录管理

在这里插入图片描述

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>5.1.4.RELEASE</version>
</dependency>

编写PasswordEncoderUtil类,生成加密后的密码,采用BCrypt加密方法在每次生成密码时会加随机盐,所
以生成密码每次可能不一样。

package com.demo.nacos;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * Description: 密码加密工具类
 * Author:
 * DATE: 2022/1/25 17:20
 */
public class PasswordEncoderUtil {
    public static void main(String[] args) {
        System.out.println(new BCryptPasswordEncoder().encode("123456"));
    }
}
  1. 创建用户名或者密码的时候,用指定用户名密码即可。
    将上边程序输出的密码更新到数据库。
INSERT INTO users (username, password, enabled) VALUES ('nacos1',
'$2a$10$SmtL5C6Gp2sLjBrhrx1vj.dJAbJLa4FiJYZsBb921/wfvKAmxKWyu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos1', 'ROLE_ADMIN');

关闭登录功能
由于部分公司自己开发控制台,不希望被nacos的安全filter拦截。因此nacos支持定制关闭登录功能找到配置文件
${nacoshome}/conf/application.properties , 替换以下内容即可。

## spring security config
### turn off security
spring.security.enabled=false
management.security=false
security.basic.enabled=false
nacos.security.ignore.urls=/**
#nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.
ico,/console‐
fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值