——笔记源于黑马
使用Nacos
- 启动Nacos
startup.cmd -m standalone 单机启动Nacos
- 在父工程pom.xml引入依赖
<!--spring cloud alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency>
- 在微服务pom.xml中引入nacos客户端依赖
<!--Nacos客户端依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 在微服务application.yml中配置nacos地址
spring:cloud:nacos:server-addr: localhost:8848 #nacos服务地址
配置集群和负载均衡
- 设置集群
spring:cloud:nacos:server-addr: localhost:8848 #nacos服务地址discovery:cluster-name: HZ #配置集群名称
- 配置Nacos负载均衡
在服务使用者中添加配置
userservice:ribbon:NFloadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #配置Nacos负载均衡策略
Nacos设置权重
点击编辑按钮设置权重
设置环境隔离
spring:cloud:nacos:discovery:namespace: xxx #命名空间ID
Nacos和Eureka的区别
设置是否是临时实例
spring:cloud:nacos:discovery:ephemeral: false #是否是临时实例
Nacos配置管理
-
在Nacos中新建统一配置
-
在微服务中引入nacos配置管理依赖
<!--Nacos客户端配置管理依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
- 新建bootstrap.yml 添加如下配置:
spring:application:name: userservice #服务名称profiles:active: dev #开发环境,这里是devcloud:nacos:server-addr: localhost:8848 #Nacos地址config:file-extension: yaml #文件后缀名
- 测试是否拿到nacos中的配置 UserController.java
@Value("${pattern.dateformat}")
private String dateformat;@GetMapping("now")
public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
}
访问http://localhost:8081/user/now显示结果
配置热更新
方式一:通过@Value注入,在UserController上加上@RefreshScope注解实现nacos配置热更新
方式二:通过@ConfigurationProperties(prefix = "pattern")注入,自动刷新