springboot2.6.13+nacos2.5.1Server+spring-cloud-alibaba配置

Nacos的版本有严格的限制,一点不对可能就报错,但是用起来比较好用,灵活性比较大,毕竟是开源的,看不顺眼的都可以改;

Springboot集成nacos通用的有alibabaCloud、nacos-config、SDK方式

这里我们使用springboot2.7.18集成alibabaCloud的方式,中间也踩了不少的坑,可能与我原来项目的集成太多组件有关系,在此来记录一下

nacos server : 2.5.1 部署就很简单了,就不再描述。

目录

Maven环境准备

application.yml配置

启动类注解

连接

关于配置的热发布


Maven环境准备

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version> <!-- 2.6到2.7都可以 -->
        <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!-- 去掉springboot自带的日志 ,使用的是log4j2.yml-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <!-- 去掉springboot自带的日志,使用的是log4j2.yml-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

         <!-- 配置文件读取包-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
             <version>2021.0.5.0</version> <!-- 请根据实际情况选择合适的版本 -->
         </dependency>
         <!-- 服务发现包-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
             <version>2021.0.5.0</version> <!-- 请根据实际情况选择合适的版本 -->
         </dependency>        
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.0</version><!-- 其它版本版本应该也可以,引入这个包主要是解决一个 -spring.config.import=nacos: property to your configuration.的报错->
        </dependency>
  </dependencies>

application.yml配置

当然这个还有很多属性可以进行配置,比如超时重试、用户名密码等,可参考NacosConfigProperties.class和NacosDiscoveryProperties.class文件里面的属性

server:
  port: 8080
  servlet:
    context-path: /
spring:
  application:
    name: app  
  cloud:
    nacos:
      server-addr: 192.168.126.134:8848
      config:
        server-addr: ${spring.cloud.nacos.server-addr}
        namespace: c7595b0e-c04c-4a67-a486-80b3b754a579
        group: gzp   #对应nacos配置中心的group
        enabled: true
        refresh-enabled: true
      discovery:
        # 注册中心地址
        server-addr: ${spring.cloud.nacos.server-addr}
        # 所属命名空间id,用于区分开发、测试、生产
        namespace: c7595b0e-c04c-4a67-a486-80b3b754a579
        group: gzp #用于应用分组
logging:
  config: classpath:log4j2.yml

启动类注解

@SpringBootApplication
@EnableDiscoveryClient
public class SpringbootNacosApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootNacosApplication.class, args);
    }

}

连接

关于配置的热发布

首先在配置中心命名空间里面增加新的配置文件,也可以使用配置文件导入功能,把原有的配置导入到nacos里面,这里我踩了个坑,划重点:必须要在bootstrap.yml里面配置nacos连接信息,它会比其它配置文件优先加载,

所以要把application.yml配置的nacos信息移到bootstrap.yml里面去

bootstrap.yml配置信息:

spring:
  application:
    name: app
  cloud:
    nacos:
      server-addr: 192.168.126.134:8848
      config:
        server-addr: ${spring.cloud.nacos.server-addr}
        namespace: c7595b0e-c04c-4a67-a486-80b3b754a579
        group: gzp
        file-extension: yaml
        enabled: true
        refresh-enabled: true
      discovery:
        # 注册中心地址
        server-addr: ${spring.cloud.nacos.server-addr}
        # 所属命名空间id,用于区分开发、测试、生产
        namespace: c7595b0e-c04c-4a67-a486-80b3b754a579        
        group: gzp

Nacos配置文件

修改属性:

spring.cloud.nacos.config.enabled: true

spring.cloud.nacos.config.refresh-enabled: true #可在修改完配置后应用程序拿到最新参数

在代码里面获取Nacos的配置属性,可直接使用@Value拿到:

启动后访问:

动态修改参数:

再次访问:

其它参数,比如服务重连等属性后面再玩

至此完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值