前提:nacos服务安装完成,单机版启动,idea开发
nacos功能:服务注册,服务配置,服务负载均衡
一.服务注册
pom基础配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Nacos Discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
application.yml配置;最基础配置,服务即可注册到nacos
server:
port: 8010
spring:
application:
name: consumer
cloud:
nacos:
server-addr: 127.0.0.1:8848
二、nacos作为配置中心
1.默认以当前服务名称作为配置中心iData ID进行读取
spring:
application:
name: test //定义的服务名称,在nacos上的配置文件需要相同名称,后缀名可以省略
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
# 修改了后缀,非properties的文件需要定义下面的内容
file-extension: yaml
2.配置dev,pro环境,对应配置文件
nacos的配置文件名称格式: test-pro.yaml
spring:
application:
name: test
profiles:
active: pro
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
# 修改了非prooperties需要定义
file-extension: yaml
namespace: f536ad20-29ac-4580-9976-6c56e759ab4d
注意:
如果修改nacos的配置文件,服务这边并不更新数据,则需要在类上加备注
@RefreshScope
3.匹配多个公共配置文件,不影响上文的配置,但是公共配置文件的优先级小于 上文的服务自己的配置文件
#简化写法
# 公共的配置名称,多个用逗号隔开
shared-dataids: common.yml,abc.properties
# 需要 刷新配置的文件
refreshable-dataids: common.yml,abc.properties
# 正常写法
ext-config:
- data-id: common.yml
group: DEFAULT_GROUP
refresh: true
- data-id: abc.properties
group: DEFAULT_GROUP
refresh: true
总配置:
server:
port: 8012
spring:
application:
name: test
profiles:
active: pro
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
# 修改了非prooperties需要定义
file-extension: yaml
# 命名空间id
namespace: f536ad20-29ac-4580-9976-6c56e759ab4d
#简化写法
# 公共的配置名称,多个用逗号隔开
shared-dataids: common.yml,abc.properties
# 需要 刷新配置的文件
refreshable-dataids: common.yml,abc.properties
# 正常写法
ext-config:
- data-id: common.yml
group: DEFAULT_GROUP
refresh: true
- data-id: abc.properties
group: DEFAULT_GROUP
refresh: true
discovery:
namespace: f536ad20-29ac-4580-9976-6c56e759ab4d
# file-extension: yaml
# server-addr: 127.0.0.1:8848
# shared-dataids[0]:
# data-id: dev-common.properties
# group: DEFAULT_GROUP
# refresh: true
# profiles:
# active: dev
# ephemeral: false //永久实例
# group: 分组管理
# config:
# file-extension: yml
# shared-dataids: common.yml
# refreshable-dataids: common.yml
三、负载均衡,nacos整合了open-feign, 嗯,默认轮询机制,具体配置未深入研究测试