栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud整合Nacos配置中心

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud整合Nacos配置中心

代码读写、监听nacos配置中心的方案,请移步 https://blog.csdn.net/rocklee/article/details/124006422

确定版本依赖

在parent里面定义好boot/cloud/alibaba的版本:
这里用的boot是2.4.2,springcloud的版本是2020.0.5,alibaba cloud的版本是2021.1算是不落伍吧。
2020.0.5
2021.1


                    
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring-alibaba-cloud.version}
                pom
                import
            
        
    
服务模块pom引入

parent的依赖版本约定已经定义好,那么在其他服务模块中直接引用依赖即可,因为我是同时用nacos作用自治中心和配置中心,所以引入nacos-config和nacos-discovery两个依赖


            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
            org.springframework.cloud
            spring-cloud-starter-loadbalancer
        
配置bootstrap.yml

bootstrap配置文件优先度最高,bootstrap可以通过bootstrap的配置文件动态从配置中心加载配置再做后面的初始化,这里做测试的只是将一个应用类的配置放在配置中心,其他还是放在本地,具体:

server:
  tomcat:
    accept-count: 800 #如果max线程都满负载工作,还能接受多少排队任务
    threads:
      max: 200 #最大线程数
      min-spare: 12 #核心线程数
    max-connections: 5000
  port: 2000
spring:
  #main: #不引用org.springframework.boot:spring-boot-starter-web就好
  #  web-application-type: none
  application:
    name: ${services.account-service}
  profiles:
    include: jdbc,config
    #active: prod

  output:
    ansi:
      enabled: always
  cloud:
    inetutils:
      preferred-networks: 128.30
    nacos:
      username: seata
      password: seatapass
      config:
        server-addr: ${nacos.server-addr}
        #文件扩展名默认就是properties,还可以是yaml
        file-extension: yml
        refresh-enabled: true
        #name: spec-config.yml 
      discovery:
        server-addr: ${nacos.server-addr}
        service: ${services.account-service}

本地也针对应用配置类有相应的配置参数

配置中心

默认的data id是 s p r i n g . a p p l i c a t i o n . n a m e + " − " + {spring.application.name}+"-"+ spring.application.name+"−"+{spring.profiles.active}+“.”+${spring.cloud.nacos.config.file-extension}
比如从上面的配置,对应的nacos data id 为easy-cloud-account-service.yml,因为未指定active. 那么可以加入此配置

编写配置类

记得加上@RefreshScope,这要告诉nacos config客户端从配置中心取回数据刷新

@Configuration
@ConfigurationProperties(prefix = "sample")
@RefreshScope
public class NacosConfigSampleP  {
private String staff;
private int age;
}

在controller上加上

@Override
  public NacosConfigSample getConfig() {
    NacosConfigSample sample=new NacosConfigSample();
    //因为nacosConfigSample已经被 代理,多了很多不能序列化的对象,故要转换
    BeanUtils.copyProperties(nacosConfigSample,sample);
    return sample;
  }
测试

当修改了nacos配置中心的参数,立即会反应到nacosConfigSample

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号