SpringBoot整合Nacos配置中心和注册中心 | 您所在的位置:网站首页 › springboot整合nacos注册中心 › SpringBoot整合Nacos配置中心和注册中心 |
一、背景 公司项目中使用的Nacos作为服务的注册中心和配置中心,但是呢公司的这一套Nacos是经过封装了的,而且封装的不是很友好,想着自己搭建一套标注的Nacos配置中心和服务中心 二、Nacos配置中心和注册中心搭建 2.1 依赖引入 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2021.0.5.0 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2021.0.5.0 org.springframework.cloud spring-cloud-starter-bootstrap 3.0.4这里需要注意下SpringBoot的版本,不然jar包会有冲突,我这里使用的SpringBoot的版本是这个 org.springframework.boot spring-boot-starter-parent 2.6.13为什么要引入spring-cloud-starter-bootstrap的依赖呢? 答:因为在配置完Nacos注册中心和配置中心后,启动的时候报错如下错误,网上搜了一堆才找到回答。 SpringBoot和SpringCloud版本对应关系:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub 2.2 application.yml配置 server: port: 9999 spring: cloud: nacos: discovery: #nacos服务注册的配置 server-addr: 127.0.0.1:8848 register-enabled: true namespace: da8ba5de-6fd4-428c-9e64-7dcb38d28805 profiles: active: dev2.3 bootstrap.properties配置 #nacos配置中心的相关配置 spring.cloud.nacos.config.file-extension=yaml spring.cloud.nacos.config.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.group=DEFAULT_GROUP #注意:应用的名称必须要在这里配置;不然在修改了Nacos配置之后,无法实时更新配置信息 spring.application.name=demo2.4 启动入口加注解 加入@EnableDiscoveryClient注解 @EnableDiscoveryClient @SpringBootApplication(scanBasePackages = {"com.example"}) @MapperScan({"com.example.demo.mapper"}) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }2.5 Nacos配置类 网上很多直接使用@Value注解的,但是在实际使用的过程中,发现@Value注解会导致更改了的配置不会实时刷新,所以最好是@RefreshScope和@ConfigurationProperties配合一起使用。 @RefreshScope @Data @Configuration @ConfigurationProperties(prefix = "demo") public class DemoPropertites { private String test; } @RestController @RequestMapping("/nacos") public class NacosController { @Resource private DemoPropertites demoPropertites; @RequestMapping("/config") public String getConfig(){ return demoPropertites.getTest(); } }2.6 启动本地Nacos服务 2.6.1 本地Nacos服务下载 Releases · alibaba/nacos · GitHub 我这边使用的是nacos-server-2.2.2版本的,刚开始使用的是1.4.5版本,发现有问题 2.6.2 本地Nacos启动 直接参考官网的启动方式:https://github.com/alibaba/nacos 2.7 本地Nacos访问 localhost:8848/nacos 账号:nacos 密码:nacos 2.8 创建Nacos命名空间 如果不创建命名空间的话,默认使用的是pulic保留空间;我创建了一个dev的命名空间 2.9 创建配置文件 在dev命名空间下,创建demo.yaml配置文件;注意Data Id的命名,默认情况是${spring.application.name}.${spring.cloud.nacos.config.file-extension} ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} spring.application.name:应用的名称 spring.profiles.active:当前启动的环境 spring.cloud.nacos.config.file-extension:nacos配置文件的后缀,支持yaml和properties 2.10 启动项目 启动完成后Nacos会监听如下三个文件,如果有改动,则会更新配置文件信息 未修改配置前,nacos数据获取: 修改配置后,nacos数据获取: 服务注册: 3. Nacos多环境配置 主要有以下三个环境的配置文件 开发环境:bootstrap-dev.properties spring.cloud.nacos.config.file-extension=yaml spring.cloud.nacos.config.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.register-enabled=true spring.cloud.nacos.discovery.namespace=da8ba5de-6fd4-428c-9e64-7dcb38d28805测试环境:bootstrap-test.properties spring.cloud.nacos.config.file-extension=yaml spring.cloud.nacos.config.namespace=52990b07-f6dd-4f24-b2e3-2523516d368b spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.register-enabled=true spring.cloud.nacos.discovery.namespace=52990b07-f6dd-4f24-b2e3-2523516d368b生产环境:bootstrap-pro.properties spring.cloud.nacos.config.file-extension=yaml spring.cloud.nacos.config.namespace=4d73106d-10f7-4893-bd75-a8b12244304d spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.group=DEFAULT_GROUP spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.register-enabled=true spring.cloud.nacos.discovery.namespace=4d73106d-10f7-4893-bd75-a8b12244304d |
CopyRight 2018-2019 实验室设备网 版权所有 |