服务集群
需求
- 服务提供者搭建集群
- 服务调用者,依次显示集群中各服务的信息
搭建
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的加载顺序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
。
概念 | 描述 |
Data ID | 数据唯一标识,可理解为Spring Cloud应用的配置文件名 |
Group | 用来对Data ID 做集合管理,相当于小分类 |
Namespace | 用于进行租户粒度的配置隔离。相当于大分类 |
- 组group配置
spring.cloud.nacos.config.group= #组名称
- 命名空间 namespace配置
spring.cloud.nacos.config.namespace= #namespace的ID