• 首页

  • 归档

  • 标签

  • 分类

  • 友链
M S B l o g
M S B l o g

ms

获取中...

05
27
java
总结
教程
spring cloud

spring cloud alibaba-----nacos(配置中心)

发表于 2021-05-27 • java 总结 spring cloud nacos • 被 686 人看爆

可以用nacos作为配置中心。配置中心的意思是不在application.properties等文件中配置了,而是放到nacos配置中心公用,这样无需每台机器都改。

官方教程:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md

使用:

1,添加nacos配置中心的依赖

<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

2,在服务中创建/src/main/resources/bootstrap.properties ,这个文件是springboot里规定的,他优先级别application.properties高

#nacos配置文件名
spring.application.name=gulimall-coupon
#nacos地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3,浏览器去nacos里的配置列表,点击+号,data ID:gulimall-coupon.properties,配置

coupon.user.name="张三"      
coupon.user.age=12

4,加入@RefreshScope,nacos配置中心修改配置,服务能立刻感知并能获取到

如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")//从application.properties中获取//不要写user.name,他是环境里的变量
    private String name;
    @Value("${coupon.user.age}")
    private Integer age;
    @RequestMapping("/test")
    public R test(){

        return R.ok().put("name",name).put("age",age);
    }

命名空间:

用于进行租户粒度的配置隔离。不同命名抗击那下,可以存在相同的Group和Data ID的配置。Namesace的常用场景之一是不同环境的区分隔离,例如开发测试环境和生产环境的资源(如配置,服务)隔离等。

image.png
默认是public(保留空间),默认新增的所有配置都在

  1. 每一个微服务之间相互隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置

  2. 创建开发,测试,生产环境命名空间(利用命名空间来做环境隔离)
    image.png

注意:在bootstrap.properties配置上,需要使用哪个命名空间下的配置,(后面字符为命名空间的唯一id,不能直接写命名空间的名字)

spring.cloud.nacos.config.namespace=026da01a-cb2e-4f12-98b8-fcc966ace0d6

配置集:

一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源,线程池,日志级别等配置项目。

配置集ID:

Nacos中的某个配置集的ID。配置集ID是组织划分配置的维度之一。Data ID通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID通常采用类java包(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。

配置分组:

Nacos中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如buy或Trade)对配置集进行分组,从而区分Data ID相同的配置集。当你在Nacos上创建一个配置时,如果为填写配置分组的名称,则配置分组的名称默认采用DEFAULT_GROUP。配置

加载多个配置集

  1. 微服务任何配置信息,任何配置文件都可以放在配置中心中
  2. 只需要在bootstrap.properties说明加载配置中哪些配置文件即可
  3. @Value,@ConfigurationProperties...以前springboot任何方法从配置文件中获取值,都可以使用,配置有的优先使用配置中心的

使用:

将一个配置文件细分成datasource.xml,mybatis.xml,other.xml,放到同一个配置分组dev,命名空间为该服务名

spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-add=127.0.0.1:8484
spring.cloud.nacos.config.namespace=907308ff-078d-4b99-8528-8b6571eee5fb

#配置分组名称
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
#
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true
分享到:
ES6:let和const
spring cloud alibaba --------Feign(远程调用)
  • 文章目录
  • 站点概览
ms

MSms

⚓️HelloWorld⚓️

QQ Email RSS
看爆 Top5
  • MyBatis-Plus分页查询 5,937次看爆
  • @Autowired与@Resource的区别 4,755次看爆
  • feign远程调用及异步调用丢失请求头问题 4,527次看爆
  • spring cloud中OpenFeign整合Sentinel启动报错 4,425次看爆
  • Certbot查看证书过期时间,手动续期以及自动续期 3,303次看爆

Copyright © 2025 ms · 湘ICP备20015239号

Proudly published with Halo · Theme by fyang · 站点地图