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的线程