nacos源码本地调试-通过代码获取获取nacos配置内容

1、首先在nacos-example中新建一个test.java

package com.alibaba.nacos.example;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.config.ConfigService;

import java.util.Properties;

public class Test {
    public static final String SERVER_ADDR = "127.0.0.1";
  public static final String TEST_NAMESPACE = "e422939c-d968-44c3-bcf0-0c015f661b7c";

    public static void main(String[] args) throws  Exception {
        Properties properties = new Properties();
        properties.put(PropertyKeyConst.SERVER_ADDR, SERVER_ADDR);
        properties.put(PropertyKeyConst.NAMESPACE, TEST_NAMESPACE);
        ConfigService configService = NacosFactory.createConfigService(properties);
        String content = configService.getConfig("com.****.jdbc.properties", "***_GROUP", 3000L);

        System.out.println("content:" + content);
    }
}

这里先打印一下结果:

content:jdbc.driver=com.mysql.cj.jdbc.Driver
#### read db config
jdbc.read.url=jdbc:mysql://**.**.*.*:3306/**?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8
jdbc.read.username=**
jdbc.read.password=**
jdbc.read.maxPoolSize=30
jdbc.read.minPoolSize=10
jdbc.read.autoCommitOnClose=false
jdbc.read.checkoutTimeout=5000
jdbc.read.maxIdleTime=600000
jdbc.read.maxLifetime=1200000

## write db config
jdbc.update.url=jdbc:mysql://**.**.**.**:3306/**?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8
jdbc.update.username=**
jdbc.update.password=**
jdbc.update.maxPoolSize=30
jdbc.update.minPoolSize=10
jdbc.update.autoCommitOnClose=false
jdbc.update.checkoutTimeout=5000
jdbc.update.maxIdleTime=600000
jdbc.update.maxLifetime=1200000

二、分析下引用过程:

1、NacosFactory-->createConfigService
2、NacosConfigService-->NacosConfigService(Properties properties)

细看NacosConfigService构造方法
可以看到:configFilterChainManager、worker

    public NacosConfigService(Properties properties) throws NacosException {
        ValidatorUtils.checkInitParam(properties);
        
        initNamespace(properties);// 获取namespace
        this.configFilterChainManager = new ConfigFilterChainManager(properties);
        ServerListManager serverListManager = new ServerListManager(properties);
        serverListManager.start();
        
        this.worker = new ClientWorker(this.configFilterChainManager, serverListManager, properties);
        // will be deleted in 2.0 later versions
        agent = new ServerHttpAgent(serverListManager);
        
    }
3、ClientWorker就是负责连接、监听server的线程
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值