nacos基础使用

Posted 苏格拉的底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos基础使用相关的知识,希望对你有一定的参考价值。

java程序方式远程获取nacos服务配置信息

nacos
下载安装包win版本:https://github.com/alibaba/nacos/releases/tag/1.4.0
这里用的1.4版本,双击命令打开服务在这里插入图片描述
打开后显示地址在这里插入图片描述
我这里直接显示的是192.168.110.245:8848 这个地址能打开页面 登录名密码nacos,一般用的是这个127.0.0.1:8848地址,这个地址也能打开网页。
http://127.0.0.1:8848/nacos/
点击配置列表右边+新增在这里插入图片描述
在这里插入图片描述
点击下方发布。
完成后是这样的:在这里插入图片描述
这里页面基本配置就结束了,到idea新建一个nacos的demo获取该地址的配置信息
新建一个nacos-simple-demo项目,项目添加nacos依赖

<!--    nacos依赖-->
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>1.1.4</version>
    </dependency>

新建类SimpleDemoMain

package com.itheima.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;

/**
 * @author Administrator
 * @version 1.0
 **/
public class SimpleDemoMain {
    public static void main(String[] args) throws NacosException {
        //使用nacos client远程获取nacos服务上的配置信息
        //nacos 配置的 nacos server地址
        String serverAddr = "127.0.0.1:8848";
        //nacos 配置的data id
        String dataId = "nacos-simple-demo.yaml";
        //nacos 配置的group
        String group = "DEFAULT_GROUP";

        Properties properties =new Properties();
//        properties.put指定地址
        properties.put("serverAddr",serverAddr);
//        properties.put("namespace",namespace);
        //获取配置
        ConfigService configService = NacosFactory.createConfigService(properties);
        // String dataId, String group, long timeoutMs
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
        //String dataId, String group, Listener listener
        configService.addListener(dataId, group, new Listener() {
            public Executor getExecutor() {
                return null;
            }
            //当配置有变化 时候获取通知
            public void receiveConfigInfo(String s) {
                System.out.println(s);
            }
        });

        while (true){
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }
}

执行的时候控制台能打印该地址的配置信息
在这里插入图片描述
在这里插入图片描述
namespace需要新建
在这里插入图片描述
java后台中如果没有指定namespace,默认的是public的命名空间。

指定一个namespace ,能够获取到该命名空间下的配置文件信息 String namespace = “0c29d558-426f-46b7-9f1e-bcb6c3edc3c5”;
在这里插入图片描述
生产空间和开发空间可以导入再导入,或者先选择,再克隆,比较方便。
在这里插入图片描述
历史本版》回滚
在这里插入图片描述

新增监听,命名空间的参数修改时能自动获取修改时的值。

configService.addListener(dataId, group, new Listener() {
            public Executor getExecutor() {
                return null;
            }
            //当配置有变化 时候获取通知
            public void receiveConfigInfo(String s) {
                System.out.println(s);
            }
        });

        while (true){
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

更改nacos的密码工具类
添加依赖

<dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>5.1.4.RELEASE</version>
    </dependency>

新建一个工具类PasswordEncoderUtil

public static void main(String[] args) {
        String encode = new BCryptPasswordEncoder().encode("456");
        System.out.println(encode);
    }

这个密码就是加密后的456

新增nacos就是向user表和roles表新增记录
例如:
在这里插入图片描述
这个表是nacos_config 其他的叫做config表

项目demo:https://gitee.com/zouxiongnb/nacos-simple-demo

以上是关于nacos基础使用的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Alibaba基础教程:Nacos的数据持久化

Nacos配置的多环境管理

Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解

Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

Nacos学习笔记 服务发现基础应用

Nacos学习笔记 服务发现基础应用