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

3.SpringCloud配置中心:Nacos使用示例

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

3.SpringCloud配置中心:Nacos使用示例

Nacos既提供注册中心,也提供配置中心。下面分别以两个例子来说明配置中心的使用。

目录

案例一:配置中心使用

人工在Nacos配置内容

客户端使用

案例二:配置拆分与复用

背景

配置拆分复用说明

对pom.xml增加依赖

删除application.properties,增加bootstrap.properties

启动

调用验证


案例一:配置中心使用

人工在Nacos配置内容

在Nacos中人工定义如下

Data ID:    firstapp-dev.properties

Group  :    DEFAULT_GROUP

配置格式:    Properties

配置内容:   weather=sun
           temperature=20.55

 其中Data ID的命令规则为:应用名-环境profile名.文件后缀

  • 应用名(Data ID前缀):默认为  ${spring.appliction.name}, 也可以使用${spring.cloud.nacos.config.prefix}来配置
  • 环境profile名:既${spring.profiles.active}指定的环境。  若不区分环境,则本内容既前面的中划线都可以不用存在。
  • 文件后缀:既SpringBoot中配置文件扩展名,也是Nacos中的配置格式。

客户端使用

新建一个project或者module。 在生成的默认pom.xml增加nacos-config和bootstrap依赖。如下



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.4.11
         
    
    com.example
    firstapp
    0.0.1-SNAPSHOT
    firstapp
    firstapp
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            2021.1
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
            3.0.4
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


 创建bootstrap.properties文件(与application.properties文件同目录存放),bootstrap.properties加载顺序先于application.properties 。bootstrap.properties文件内容如下:

spring.application.name=firstapp

#Data ID的前缀(如果不指定,则默认取 ${spring.appliction.name})
spring.cloud.nacos.config.prefix=firstapp
#指定为开发环境
spring.profiles.active=dev
#配置中心服务器地址
spring.cloud.nacos.config.server-addr=39.100.80.168:8848
#命名空间(由于Bug:若这里指定为public会导致高频刷,指定其他命名空间正常。 Bug链接 https://github.com/alibaba/nacos/issues/3460)
#spring.cloud.nacos.config.namespace=public
#配置组(如果不指定,则默认为DEFAULT_GROUP)
spring.cloud.nacos.config.group=DEFAULT_GROUP
#指定文件后缀(如果不指定,则默认为properties)
spring.cloud.nacos.config.file-extension=properties

 对SpringBoot启动类中,增加获取配置项并输出的代码。

@SpringBootApplication
public class FirstappApplication {
    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(FirstappApplication.class, args);
        while (true) {
            String weather = applicationContext.getEnvironment().getProperty("weather");
            String temperature = applicationContext.getEnvironment().getProperty("temperature");
            System.err.println("weather:" + weather + "; temperature: " + temperature);
            TimeUnit.SECONDS.sleep(3);
        }
    }
}

启动运行后,可以看到SpringBoot程序获得了Nacos配置中心的值。

同时,如果在Nacos界面中人工调整配置项的值,SpringBoot会立即自动取得最新值。因为Nacos带自动刷新功能。

可以通过配置 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新

案例二:配置拆分与复用

背景

本案例在前一个案例(2.SpringCloud服务注册与调用:Nacos、openFeign、loadbalancer_zyplanke的专栏-CSDN博客)基础上进行注册中心修改。

配置拆分复用说明

在nacos中配置如下三个Data ID:

  • commonshare.properties  放各个服务的公共配置
  • paymentService.properties  放支付服务需要的配置
  • orderService.properties  放订单服务需要的配置

在Nacos中人工定义如上三个Data ID,内容分别如下:

commonshare.properties:

paymentService.properties:

orderService.properties:

对pom.xml增加依赖
   ------ 前面省略 ------
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            ${springcloudalibaba.version}
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
            3.0.4
        
   ------ 后面省略 ------

删除application.properties,增加bootstrap.properties

分别删除payment、order服务下的application.properties文件。

在payment服务下新增bootstrap.properties文件,改为从配置中心获取应用程序的配置,bootstrap.properties内容如下:

spring.application.name=payment

#配置中心服务器地址
spring.cloud.nacos.config.server-addr=39.100.80.168:8848
#Data ID的前缀(如果不指定,则默认取 ${spring.appliction.name})
spring.cloud.nacos.config.prefix=paymentService
spring.cloud.nacos.config.group=DEFAULT_GROUP
#指定文件后缀(如果不指定,则默认为properties)
spring.cloud.nacos.config.file-extension=properties
#通用共享配置的信息
spring.cloud.nacos.config.shared-configs[0].data-id=commonshare.properties
spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true

   在order服务下新增bootstrap.properties文件,内容如下:

spring.application.name=order

#配置中心服务器地址
spring.cloud.nacos.config.server-addr=39.100.80.168:8848
#Data ID的前缀(如果不指定,则默认取 ${spring.appliction.name})
spring.cloud.nacos.config.prefix=orderService
spring.cloud.nacos.config.group=DEFAULT_GROUP
#指定文件后缀(如果不指定,则默认为properties)
spring.cloud.nacos.config.file-extension=properties
#通用共享配置的信息
spring.cloud.nacos.config.shared-configs[0].data-id=commonshare.properties
spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true

启动

   分别启动payment、order服务。

   可以看到payment服务启动端口为9999(从nacos配置中心获得的端口配置);   可以看到order服务启动端口为8888(从nacos配置中心获得的端口配置)

调用验证
curl http://localhost:8888/consumer/66

调用Order服务成功,返回信息符合预期。

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

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

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