1、Nacos概述
- 阿里巴巴开发的一款开源框架,构建云原生应用的动态服务发现,配置管理和服务管理平台。
- 快速实现动态服务发现、服务配置、服务元数据及流量管理。
2、Nacos官网下载
3、Nacos安装启动
- 下载包(本次示例是在windows环境单机,linux环境同样操作)nacos-server-2.1.1.tar.gz,解压。
- 进入bin目录下,执行命令
startup.cmd -m standalone
4、Nacos服务发现(注册中心)配置
- 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
<!-- 新版gateway 中没有lb,需要手动添加依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
注:如果使用负载,则需要引入loadbalancer依赖
- 配置:
spring:
cloud:
nacos:
discovery:
#如果是集群环境,server-addr 后面添加所有nacos服务IP端口,用逗号隔开
server-addr: localhost:8848
#服务发现开启
enabled: true
#命名空间
namespace: public
#组
group: default
heart-beat-interval: 1000 #实例在客户端上报心跳的间隔时间 单位:毫秒
heart-beat-timeout: 3000 #实例在不发送心跳后,健康超时时间 单位:毫秒
ip-delete-timeout: 3000 #实例在不发送心跳后,删除实例的时间 单位:毫秒
watch-delay: 3000
metadata:
preserved.heart.beat.interval: 1000
preserved.heart.beat.timeout: 3000
preserved.ip.delete.interval: 3000
#连接nacos的用户名密码
username: nacos
password: nacos
- 负载均衡
spring:
cloud:
gateway:
routes:
- id: r01
order: 1
uri: lb://服务名
predicates:
- Method=GET,POST
- Path=/v1/*
filters:
- StripPrefix=1
loadbalancer:
ribbon:
##使用gateway官方推荐的负载均衡器ReactiveLoadBalancerClientFilter;也可以使用Ribbon的阻塞式LoadBalancerClient负载均衡器,值设置为true即可
enabled: false
cache:
#设置服务缓冲有效时间,快速上下线
ttl: 3s
health-check:
#健康检查初始延迟值(默认0)
initial-delay: 0
#健康检查的时间间隔(默认25s)
interval: 5s
#健康检查获取服务实例的时间间隔(默认25s)
refetch-instances-interval: 5s
refetch-instances: true
retry:
max-retries-on-same-service-instance: 0
注: 如果使用负载,则必须使用lb://服务名配置。默认使用的轮询策略(RoundBobinLoadBalancer)
如果使用ribbon进行负载,则配置如下:
spring:
cloud:
loadbalancer:
ribbon:
enabled: true
ribbon:
ServerListRefreshInterval: 1
- 引入注解
在服务入口中引入@EnableDiscoveryClient, 开启服务发现
5、Nacos配置管理(配置中心)配置
- 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
- 配置
spring:
cloud:
nacos:
config:
#nacos服务端地址,如果是集群,所有地址添加到后面用逗号分隔
server-addr: localhost:8848
#配置中心需要的文件后缀
file-extension: yaml
extension-configs:
#配置中心文件设置
- dataId: gateway.yml
group: DEFAULT_GROUP
#修改配置中心文件生效
refresh: true
#连接nacos的用户名密码
username: nacos
password: nacos
- 引入注解
代码中使用到配置中心的配置时,需要引入@refreshScope,当修改配置中心的配置时能实时生效
注:
1、使用nacos作为配置中心时必须使用bootstrap.yml 或bootstrap.properties。因为bootstrap.yml的配置文件比application.yml的配置文件优先级高。
2、配置中心的命名空间和组必须和注册中心的服务所在命名空间和组一致。
3、配置中心的文件命名规则(默认):【命名空间id】 【分组】 {spring.application.name}-{spring.profiles.active}.{file-extension}
nacos管理界面:
- 注册中心

image.png

image.png
-
配置中心
image.png

image.png
