1、积分中Nacos用了几个节点?
2、SpringCloud那个服务模块和Nacos通信?微服务如何从Nacos去注册和读取信息?底层是如何通信的?
微服务如何注册信息进Nacos?
(1)在pom.xml中添加nacos的依赖
<!--nacos客户端--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
(2) 在主类上添加@EnableDiscoryClient注解
@SpringBootApplication@EnableDiscoveryClientpublic class ProductApplication
(3)在application.yml中添加nacos服务的地址
spring:# 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息application:name: service-productcloud:nacos:discovery:server-addr: 127.0.0.1:8848
- bootstrap.yml(bootstrap.properties)用来在程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等;
- application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
所以建议:若要在Nacos中管理配置文件,服务中直接使用bootstrap.yml(bootstrap.properties)来放nacos的配置
(4)启动服务,观察Nacos的控制面板中是否有注册进来的商品微服务

微服务如何读取信息?
(1)pom文件
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
(2) YML
Nacos 同SpringCloud - config 一样,在项目初始化时,要保证先从配置中心进行配置拉取。拉取配置之后,才能保证项目的正常运行。
bootStrap.yaml
# nacos配置server:port: 3377spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #Nacos服务注册中心地址config:server-addr: localhost:8848 #Nacos作为配置中心地址file-extension: yaml #指定yaml格式的配置group: DEV_GROUPnamespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}# nacos-config-client-dev.yaml# nacos-config-client-test.yaml ----> config.info
application.yml
spring:profiles:active: dev # 表示开发环境#active: test # 表示测试环境#active: info
(3)主启动
package com.atguigu.springcloud.alibaba;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient@SpringBootApplicationpublic class NacosConfigClientMain3377 {public static void main(String[] args) {SpringApplication.run(NacosConfigClientMain3377.class,args);}}
(4)业务类
package com.atguigu.springcloud.alibaba.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RefreshScope //支持Nacos的动态刷新功能public class ConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo(){return configInfo;}}
(5)在Nacos中添加配置信息
理论
Nacos中的dataid的组成格式及与SpringBoot配置文件中的匹配规则
实操
确定DataId
配置新增
Nacos界面配置对应
历史配置
