Nacos是阿里的一个开源产品,是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。(用来实现配置中心和服务注册中心)
官网:https://nacos.io/zh-cn/docs/what-is-nacos.html
1.Nacos简介Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
2.Nacos注册中心的使用2.1将微服务注册到Nacos
① 首先需要搭建Nacos环境、安装nacos(路径栏中不能有汉字)
下载地址: https://github.com/alibaba/nacos/releases 下载zip格式的安装包,然后进行解压缩操作
②启动nacos
我们要启动Nacos时必须保证当前系统配置了java环境变量
简单来说就是要环境变量中,有JAVA_HOME的配置,指向安装jdk的路径
#命令启动
startup.cmd -m standalone
③访问nacos
打开浏览器输入http://localhost:8848/nacos,即可访问服务, 默认密码是nacos/nacos
2.2接下来将微服务注册到Nacos中
接下来开始修改 shop-product 模块的代码, 将其注册到nacos服务上
① 在pom.xml中添加nacos的依赖
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
②在主启动类上添加nacos的开启注解
@SpringBootApplication
@EnableDiscoveryClient//开启nacos注解
@MapperScan(basePackages = "com.cyy.product.mapper")
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class,args);
}
}
③在application.propreties添加nacos的配置
#配置nacos注册中心的地址 spring.cloud.nacos.server-addr=localhost:8848
④启动服务,观察nacos的控制面板中是否有注册上来的商品微服务
3.Nacos配置中心的使用微服务中配置中心的主流解决方案主要有三种:Nacos、Apollo、Config+Bus,不过这篇文章我们主要介绍 Nacos 作为配置中心的用法,对其他两种方式感兴趣的读者请自行上网查阅
①首先我们声明项目的版本信息:
2.3.2.RELEASE Hoxton.SR9 2.2.6.RELEASE org.springframework.boot spring-boot-dependencies${spring-boot.version} pom import org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies${spring-cloud-alibaba.version} pom import
②添加 nacos 配置中心的 maven 依赖:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config
③在 application.properties 文件中添加 nacos 配置中心相关配置:
spring.profiles.active=dev spring.application.name=cloud-producer-server server.port=8080 # nacos 配置中心地址 spring.cloud.nacos.config.server-addr=localhost:8848 # 配置文件的类型 spring.cloud.nacos.config.file-extension=yaml
④在 nacos 控制台新建一个 DataID 为 cloud-producer-server-dev.yaml 的配置集:
⑤编写测试类:
//配置发布之后,动态刷新配置
@RefreshScope
@RestController
@RequestMapping("provider")
public class ProviderController
{
// 使用原生注解@Value()导入配置
@Value("${user.id}")
private String id;
@Value("${user.name}")
private String name;
@Value("${user.age}")
private String age;
@GetMapping("getNacosConfig")
public String providerTest()
{
return "我是provider,已成功获取nacos配置中心的数据:(id:" + id + ",name:" + name + ",age:" + age +")";
}
}
⑥启动服务验证:
启动项目可以看到 nacos 配置中心的配置信息已经生效并被成功获取到了



