Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
从官网下载最新版本的服务端
解压后进入bin目录启动即可
#Linux/Unix/Mac
sh startup.sh -m standalone
#Windows
cmd startup.cmd
启动后,默认端口8848,输入地址(http://localhost:8848/nacos/index.html)打开控制台页面,默认账号(nacos/nacos)
1) 引入pom依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.1.0.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
dependencies>
2) 配置链接地址
(1)服务发现,在application.properties添加配置
这个功能类似eureka
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#spring.cloud.nacos.discovery.namespace=ce7c7dd4-33fd-4103-acee-f3d78755ea09
(2)配置中心,在bootstrap.properties添加配置
这个功能类似Apollo
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#spring.cloud.nacos.config.group=demo-nacos
进入nacos控制台,在配置列表中添加工程对应的配置文件
dataId格式是: p r e f i x − {prefix}- prefix−{spring.profile.active}.${file-extension}
如 service-provider.properties,service-provider-test.properties
通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}
1)引入jar包依赖
<dependency>
<groupId>com.alibaba.bootgroupId>
<artifactId>nacos-config-spring-boot-starterartifactId>
<version>0.2.2version>
dependency>
2)增加配置参数
在application.properties增加配置:
nacos.config.server-addr=127.0.0.1:8848
3)在启动类配置
@SpringBootApplication
@NacosPropertySource(dataId = "service-provider.properties",groupId="demo-nacos", autoRefreshed = true)
public class DemoNacosSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(DemoNacosSpringbootApplication.class, args);
}
@Controller
@RequestMapping("config")
public class ConfigController {
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
@Autowired
private Environment env;
@RequestMapping(value = "/test", method = RequestMethod.GET)
@ResponseBody
public String test() {
String string = env.getProperty("provider.test");
return "Hello Nacos Discovery " + string;
}
}
}
- @NacosPropertySource 指定配置文件
- @NacosValue(value = “${useLocalCache:false}”, autoRefreshed = true) 在具体属性上赋值
- env.getProperty(“provider.test”); 直接取值
NACOS1.0.1 版本有bug,有时候新增的配置无法马上查询到,必须重启服务后才能查到,升级到1.1.0后问题修复了