介绍
提供服务发现、可以灰度发布和一键回滚配置文件,DNS服务等。
Nacos Client每5秒会发送心跳包到Nacos Server,Server没有此Client就会被注册,有的话就会更新健康状态。
Nacos单机
文件目录
文件目录 | 作用 |
---|---|
bin | 保存启用/关闭 Nacos Server 脚本 |
conf | Nacos Server 配置目录 |
data | Nacos数据目录 |
logs | 日志目录 |
target | Nacos Jar包存放目录 |
Docker启动nacos
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
docker-compose -f example/standalone-derby.yaml up
8848:是对客户端提供服务的端口。
7848:集群通讯的端口。
启动后,使用http://ip:8848/nacos进入后台
SpringBoot注册Nacos服务
1.使用maven引入Jar包
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<nacos-config-spring-boot.version>0.2.3</nacos-config-spring-boot.version>
<spring-boot.version>2.0.3.RELEASE</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${nacos-config-spring-boot.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>0.2.3</version>
</dependency>
</dependencies>
2.新版本SDK只需要增加auto-register就可以自动注册了,详细见官网介绍
nacos:
config:
server-addr: '127.0.0.1:8848'
discovery:
server-addr: '127.0.0.1:8848'
auto-register: true
3.创建Controller类,并设置useLocalCache默认为false
@Controller
@RequestMapping("config")
public class ConfigController {
/**
* 标记useLocalCache参数可以通过nacos动态改变,默认是false
*/
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
4.使用post请求下面nacos地址,动态改变useLocalCache为true
http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example&group=DEFAULT_GROUP&content=useLocalCache=true
在我写这边文章的时候,官网文档 并不完成,但还是可以用于参考的。