Nacos使用指南
Nacos的定位是注册中心,支持目前主流的分布式架构K8S/RPC/RESTful。主要功能有
- 服务发现和服务健康监测
- 动态配置服务
- 动态 DNS 服务
- 服务及其元数据管理
构建Nacos
Nacos docker
- clone项目
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
- 单机模式 Derby
docker-compose -f example/standalone-derby.yaml up
注意一定要启动docker desktop或者docker进程,然后就经过漫长的编译环节,编译完成后docker镜像会自动启动
- 测试服务状态
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
Nacos提供的服务以RESTful风格进行提供,因此可以直接通过http请求进行操作
Nacos Cons
- 服务地址
http://localhost:8848/nacos - 账号/密码
nacos/nacos
这个账号/密码是存放在数据库中的,可以进行更改
spring boot示例
配置管理
- ConfigExample
public static void main(String[] args) throws NacosException, InterruptedException {
String serverAddr = "localhost";
String dataId = "nacos.cfg.dataId1";
String group = "test";
Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
//创建连接
ConfigService configService = NacosFactory.createConfigService(properties);
//获取配置
String content = configService.getConfig(dataId, group, 5000);
System.out.println("content1:" + content);
//设置监听
configService.addListener(dataId, group, new Listener() {
@Override
public void receiveConfigInfo(String configInfo) {
System.out.println("recieve:" + configInfo);
}
@Override
public Executor getExecutor() {
return null;
}
});
//推送配置
boolean isPublishOk = configService.publishConfig(dataId, group, "content");
System.out.println(isPublishOk);
Thread.sleep(3000);
content = configService.getConfig(dataId, group, 5000);
System.out.println("content2:" + content);
//移除配置
boolean isRemoveOk = configService.removeConfig(dataId, group);
System.out.println(isRemoveOk);
Thread.sleep(3000);
content = configService.getConfig(dataId, group, 5000);
System.out.println("content3:" + content);
Thread.sleep(300000);
}