Nacos提供了四个主要功能
Nacos既可以作为服务治理中心(可以替代 Spring Cloud Eureka)也可以作为配置中心(可替代 Spring Cloud Config)。
Nacos作为一个单独的服务进行部署,不需要用户搭建项目作为服务治理节点。
Nacos 既支持AP也支持CP。
作为服务治理中心:采用的是AP模式,牺牲强一致性,从而保证存在节点宕机也不会影响正常的服务节点提供服务。
作为配置中心:采用的是CP模式,牺牲数据可用性,确保分布式下配置参数的强一致性。
CAP:数据一致性、数据可用性、分区耐受性
a.Nacos1.3.1版本的下载
b.上传到服务器,tar 解压
tar -xvf nacos-server-1.3.1.tar.gz
c.进入bin目录,以单点启动nacos
cd /local/usr/nacos/bin
sh startup.sh -m standalone
d.进入管理页面
http://127.0.0.1:8848/nacos/index.html 默认账户/默认密码 nacos/nacos
依赖注入
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>0.3.6</version>
</dependency>
在Nacos中配置 Data Id
NacosConfiguration配置类
@Configuration
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfiguration {
}
Controller层
@RestController
public class configcontroller {
@NacosValue(value = "${useLocalCache:默认值}", autoRefreshed = true)
private String useLocalCache;
@RequestMapping("/get")
@ResponseBody
public String get() {
return useLocalCache;
}
}
访问 http://localhost:8080/get 验证结果
注入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
bootstrap.properties配置文件
#应用名
spring.application.name=springcloud-imagerepair-nacos
#配置文件的前缀
spring.cloud.nacos.config.prefix=springcloud-imagerepair-nacos
#当前生效的配置文件
spring.profiles.active=Test
server.port=8081
#配置中心路径
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置文件后缀
spring.cloud.nacos.config.file-extension=properties
@RestController
@RefreshScope
public class configcontroller {
@Value("${useLocalCache:false}")
private String useLocalCache;
@RequestMapping("/get")
@ResponseBody
public String get() {
return useLocalCache;
}
}
访问 http://localhost:8080/get 验证结果
注入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
application.properties配置(或在Nacos中配置)
#应用名
spring.application.name=springcloud-imagerepair-nacos
#注册地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848