美文网首页
nacos配置中心

nacos配置中心

作者: 自学java的菜鸟小赵 | 来源:发表于2021-06-26 17:45 被阅读0次

    1.介绍

    官方介绍

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

    个人理解

    nocos将每一个微服务联系起来,比如有多个订单服务和多个库存服务,当用户下订单时,订单服务就需要与库存服务建立联系,但是现在存在多个库存服务,应该如何建立联系?我们可以让多个库存服务在nacos中注册id,就相当于在nacos配置中心起了一个别名,当订单服务也需要在nacos中注册,这样当订单需求进来时,只需要在配置中心查找库存服务的id,这样就可以找到当前的库存服务。

    2.nacos配置中心

    当有多个微服务需要修改配置文件时,我们不可能修改每一个微服务的配置文件,这个时候我们可以使用nacos配置中心做统一管理,一次修改多次配置文件

    3.使用

    1.引入依赖

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

    2.创建一个bootstrap.properties。

           spring.application.name=gulimall-coupon
           spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    

    3.添加数据集gulimall-coupon.properties。默认规则,应用名.properties

    截屏2021-06-26 下午5.17.21.png
    截屏2021-06-26 下午5.17.35.png

    4.我们在controller类里面创建一个test方法

    @RefreshScope
    @RestController
    @RequestMapping("coupon/coupon")
    public class CouponController {
        @Autowired
        private CouponService couponService;
    
    
        @Value("${coupon.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);
        }
    

    application.properties里面的属性为:

    coupon.user.name=zhangsan2
    coupon.user.age=20
    

    可以看到页面显示为


    截屏2021-06-26 下午5.22.00.png

    结论:如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。记得@RefreshScope注解:动态获取并刷新配置

    4.现在我们操作把数据源,mybaties等配置文件在配置中心进行配置。

    1.首先编写application.yml里面的配置信息

    spring:
     datasource:
       username: root
       password: 123456
       url: jdbc:mysql://localhost:3306/gulimall_sms
       driver-class-name: com.mysql.jdbc.Driver
     cloud:
       nacos:
         discovery:
           server-addr: 127.0.0.1:8848
     application:
       name: gulimall-coupon
    
    
    mybatis-plus:
     mapper-locations: classpath:/mapper/**/*.xml
     global-config:
       db-config:
         id-type: auto
    server:
     port: 7000
    

    2.创建一个分组,当前分组只用来编写当前服务的配置信息

    截屏2021-06-26 下午5.34.58.png

    3.在当前分组中创建多个yml文件,每一个文件匹配对应的配置信息

    截屏2021-06-26 下午5.35.08.png
    截屏2021-06-26 下午5.35.17.png 截屏2021-06-26 下午5.35.27.png
    截屏2021-06-26 下午5.35.36.png

    4.编写bootstrap.properties文件

    spring.application.name=gulimall-coupon
    
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.namespace=f96301a6-6f17-4375-9db5-5782d61defa5
    #spring.cloud.nacos.config.group=prod
    
    spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
    spring.cloud.nacos.config.ext-config[0].group=dev
    spring.cloud.nacos.config.ext-config[0].refresh=true
    
    spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
    spring.cloud.nacos.config.ext-config[1].group=dev
    spring.cloud.nacos.config.ext-config[1].refresh=true
    
    spring.cloud.nacos.config.ext-config[2].data-id=other.yml
    spring.cloud.nacos.config.ext-config[2].group=dev
    spring.cloud.nacos.config.ext-config[2].refresh=true
    

    namespace对应当前分组创建时所生成的ID名

    截屏2021-06-26 下午5.34.58.png

    在代码中把相关的配置文件代码注释,然后开启nacos服务,如果运行不报错则表示配置成功
    此代码来自于尚硅谷中的实战项目。

    相关文章

      网友评论

          本文标题:nacos配置中心

          本文链接:https://www.haomeiwen.com/subject/nkezyltx.html