Nacos 使用
1、简介
一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用程序。
2、注册中心(注册与发现)
准备工作:启动 nacos,具体参见部署文档
启动命令单机模式:startup.cmd -m standalone
, 集群不加参数直接exe启动即可
Nacos Server 启动后,进入 http://ip:8848/nacos
查看控制台(默认账号名/密码为 nacos/nacos)
github配置文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-discovery.adoc
1、添加 spring cloud alibaba 依赖管理
所有alibaba服务组件,从这个管理中心引入,建议放在根(或公共)pom中
<!--spring cloud alibaba-->
<dependencyManagement>
<dependencies>
<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>
</dependencies>
</dependencyManagement>
2、添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3、application.properties
配置
# 配置服务地址、服务名
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.application.name=mall-member
4、在启动类,加上 @EnableDiscoveryClient
开启客户发现
5、检验,到nacos服务列表查看是否有服务名出现
3、配置中心
1、添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
注意:如果发现 bootstrap.properties
配置无效,就导入第二个依赖
2、创建 bootstrap.properties
配置文件
spring.application.name=mall
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3、开启动态刷新
@RefreshScope
class SampleController {
@Value("${user.name}")
String userName;
}
4、配置扩展(bootstrap.properties
)
# 服务名
spring.application.name=mall-coupon
# 服务中心地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 选择命名空间
spring.cloud.nacos.config.namespace=c34c274a-98ab-4844-9087-b3f9cd5d4981
# 选择分组
spring.cloud.nacos.config.group=DEFAULT_GROUP
# 后缀
spring.cloud.nacos.config.file-extension=properties
# 分组有多个配置时,进行单个配置
spring.cloud.nacos.config.extension-configs[0].data-id=mall-coupon.properties
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=false