【微服务】Nacos集群搭建以及加载文件配置
👀专栏介绍
【微服务】 目前主要更新微服务,一起学习一起进步。
👀本期介绍
本期主要介绍Nacos集群搭建以及加载文件配置
文章目录
服务集群
需求
-
服务提供者搭建集群 服务调用者,依次显示集群中各服务的信息
搭建
1)修改服务提供方的controller,打印服务端端口号
package com.czxy.controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
public class EchoController {
@Resource
private HttpServletRequest request;
@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
public String echo(@PathVariable String string) {
int serverPort = request.getServerPort();
return "Hello Nacos Discovery " + string + ":" + serverPort;
}
}
2)编写yml配置
#端口号
server:
port: 8170
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
#端口号
server:
port: 8270
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址
3)配置idea启动项
-Dspring.profiles.active=8170
测试
-
启动3个服务(2个服务提供,1个服务消费)
-
查看nacos控制台
加载配置文件顺序
-
对 3.4.5章节/第4步内容进行详解 加载配置文件的顺序(第4步详解)
nacos配置DataId介绍
-
nacos 提供了3种方式,配置dataId的加载顺序
A: 共享配置: spring.cloud.nacos.config.shared-dataids spring.cloud.nacos.config.refreshable-dataids B: 加载多配置: spring.cloud.nacos.config.ext-config[n] C: 内部规则拼接: spring.cloud.nacos.config.prefix spring.cloud.nacos.config.file-extension spring.cloud.nacos.config.group
配置yml文件中的DataId
spring:
application:
name: config-service # 服务名
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # nacos 服务地址
shared-dataids: test1.yml # 1.1 共享配置
refreshable-dataids: test1.yml # 1.2 共享配置,动态刷新
ext-config: # 2. 配置多个
- data-id: test2-1.yml
group: DEFAULT_GROUP
refresh: true
- data-id: test2-2.yml
group: DEFAULT_GROUP
refresh: true
prefix: test3 # 3.1 前缀,默认 ${spring.application.name}
file-extension: yaml # 3.2 后缀
group: DEFAULT_GROUP # 3.3 组名
配置console中的DataId
-
nacos控制台配置
测试
-
后面加载的dataId将覆盖前面加载的dataId设置的内容 查看日志
Located property source: [
BootstrapPropertySource {name=bootstrapProperties-test3-demo.yaml}, BootstrapPropertySource {name=bootstrapProperties-test3.yaml}, BootstrapPropertySource {name=bootstrapProperties-test2-2.yml}, BootstrapPropertySource {name=bootstrapProperties-test2-1.yml}, BootstrapPropertySource {name=bootstrapProperties-test1.yml}]
多环境配置
-
在Nacos为不同的环境(开发、测试、生产等)中,提供了多个不同管理级别的概念,包括:Data ID、Group、Namespace。
-
组group配置
spring.cloud.nacos.config.group= #组名称
-
命名空间 namespace配置
spring.cloud.nacos.config.namespace= #namespace的ID
