nacos爬坑史-1

微服务的概念性是很早之前听到的,但是没怎么接触过,在我看来可能就是把功能模块化,并且防止一个应用死了,然后项目不可用的尴尬局面,个人理解啊!

简单介绍下nacos,阿里巴巴开发的中间件,主要功能为配置中心和服务注册中心,这边文章说的是他的spring-cloud版本。

这是他的官方文档  https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

这是docker部署的地址 https://hub.docker.com/r/nacos/nacos-server (服务我没搭建,坑没踩)

下面是个人理解的东西

a. 对于spring来说,配置文件同级目录下读取优先级为,bootstrap => application, 所以nacos配置都在bootstrap.yml中

b. 其次spring-cloud-starter-alibaba-nacos-config

@NacosValue 以及 @NacosConfigurationProperties 注解值无法注入,在网上搜索你找不到太多的关于@NacosConfigurationProperties内容,@NacosValue可以找到,但也不符合要求

对于Nacos的配置中心来说,识别方式是命名空间(namespace) + dataId + group 来找到唯一的配置文件

我们加载boostrap.yml内容,然后优先执行配置中心发现配置功能,将nacos中配置请求到本地,然后本地存在snapshot(快照),并且放入spring的context中

这里不是很懂snapshot存在的意义,因为目前项目启动第一时间会连接server-addr,连接上了,才会执行下一步配置文件发现。

默认使用查找的DataId有三类

${spring.application.name}、${spring.application.name}.properties 以及 ${spring.application.name}-${spring.profiles.active}.properties

可以通过配置 prefix和file-extension 来改变这种方式

形成 ${prefix}-${spring.profiles.active}.${file-extension} 这样的DataId

这下面都是一些核心配置

spring:
  cloud:
    nacos:
      config:
        # namespace 启动通过配置 --spring.cloud.nacos.config.namespace来指定
        namespace: e062e64e-8d9d-43cc-bf48-fa5c4dc4f735
        server-addr: 192.168.1.202:8848
        prefix: DATA_ID_GENERATOR
        file-extension: yaml
        refresh-enabled: true
        config-retry-time: 3
        timeout: 3000
      discovery: # 这个只要配套 @EnableDiscoveryClient 开箱即可用
        server-addr: 192.168.1.202:8848
        group: GROUP_GENERATOR
        # 心跳检测时间间隔,单位毫秒
        heart-beat-interval: 5000
        # 心跳检测请求超时时间,单位毫秒
        heart-beat-timeout: 2000
        namespace: e062e64e-8d9d-43cc-bf48-fa5c4dc4f735

 

posted @ 2020-09-10 14:11  eros_token  阅读(339)  评论(0编辑  收藏  举报