整合spring cloud alibaba nacos的服务和配置

alibaba cloud github 地址

1.下载nacos服务

nacos-server
进入bin目录下 startup.cmd -m standalone 单机启动
nacos的可视化界面地址:http://localhost:8848/nacos
账号:nacos 密码:nacos

引入依赖

        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <!--此处版本官网是2.2的,但是会和mybatis-plus 3版本起冲突,所以退回了2.1-->
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

nacos作为服务注册与发现

1.引入依赖

		<!--服务治理与发现-->
		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

在配置文件中配置 application:name和nacos的地址

spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

然后在SpringBoot的启动类上添加开启服务发现注解

@SpringBootApplication
//开启服务发现
@EnableDiscoveryClient
public class GulimallCouponApplication {

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

重启服务,然后再nacos可视化界面中即可看到这个服务

在这里插入图片描述
多个服务同理

nacos配置管理

支持分布式系统中的外部化配置,配置更改时自动刷新
创建一个bootstrap.yaml文件(这地方必须要另起一个bootstrap文件,config.server-addr必须写这里面,写appliacation.yaml里面不行,user.username,user.age可以写在application.yaml中)

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
user:
  username: zhangsan
  age: 18
  

写一个controller,主要是@RefreshScope这个注解,这个注解加上后,当你修改配置后他会将修改后的数据他会刷新数据

@RestController("/test")
//配置更改时刷新数据
@RefreshScope
public class TestController {

    @Value("user.username")
    private String username;
    @Value("user.age")
    private Integer age;

    @RequestMapping("/test")
    public String test() {
        return "username:" + username + ",age:" + age;
    }
}

请求接口
在这里插入图片描述
然后在nacos的配置列表中添加一条数据
DataId 的拼接格式如下

${prefix} - ${spring.profiles.active} . ${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档

注意,当 activeprofile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}

file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。 目前只支持 properties 类型**(我测试了yaml也是可以的)**。

或者去控制台找一下dataId给你也写好了
在这里插入图片描述
创建好配置
在这里插入图片描述
重启下服务再次访问,看,变了。哎呦卧槽,没变
在这里插入图片描述
这里需要说一个参数,file-extension 默认是properties,因为我没有修改这个参数,然后nacos中我用的是yaml,所以此处有两种方法,1、将nacos的配置文件改为properties。2、设置file-extension: yaml,如果用此种方法,dataId需要更改,因为其拼接格式中有file-extension 这个字段

我就直接将nacos中的配置类型改成properties了
在这里插入图片描述
好了
在这里插入图片描述
再多实验几次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Cloud AlibabaSpring Cloud的一个子项目,它是阿里巴巴微服务生态的重要组成部分,提供了一系列基于Spring Boot和Spring Cloud的微服务组件,如服务注册与发现、配置管理、负载均衡、服务调用、熔断器等。而Nacos作为一个新兴的服务发现和配置中心,可以方便地进行服务治理。 Spring Cloud Alibaba整合Nacos的过程相对简单,只需要引入相关依赖,并在代码中使用对应的注解进行配置即可。 首先,在pom.xml文件中添加以下依赖: ```xml <!-- Nacos Discovery --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- Nacos Config --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 然后,在启动类上使用@EnableDiscoveryClient注解启用Nacos服务注册与发现功能: ```java @SpringBootApplication @EnableDiscoveryClient public class DemoApplication{ public static void main(String[] args){ SpringApplication.run(DemoApplication.class,args); } } ``` 接下来就可以使用@NacosValue注解注入配置信息: ```java @RestController public class DemoController{ @NacosValue(value="${config.key}",autoRefreshed=true) private String configValue; @GetMapping("/config") public String getConfig(){ return configValue; } } ``` 这样就可以通过Nacos Config来动态修改配置信息了。另外,Spring Cloud Alibaba还提供了一些其他有用的组件,如Sentinel、Seata等,可以方便地进行服务治理和分布式事务管理。 总的来说,Spring Cloud Alibaba整合Nacos是一个极为方便且实用的方式,它可以大大简化微服务应用的开发和部署,提高了系统的可靠性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年薄情凉人心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值