nacos实现配置中心,对比config

一,我们都知道,Nacos作用相当于springCloud中Eureka+Config

通过对比config的方式分析Nacos如何实现配置中心,以下为springCloud读取配置文件流程

1,config-service配置

在springCloud中配置信息是放在git上的,config-service配置git地址,即代码地址,如下

spring:
  profiles:
    active: develop #配置文件所在的目录
       
  cloud:
    config:
      server:
        git:
          uri: http://gitlab.anji-allways.com/archives/config.git
          searchPaths: develop #配置文件所在的目录(即哪个环境-开发环境)
          label: master #配置文件所在的分支
          username: maidi
          password: maidi

如下图测试环境,config-service同样配置了多个环境

2,每个服务配置(bate测试环境为例)

创建多个环境文件

3,git上对应测试环境bate地址 

二,Nacos实现配置中心

1,启动Nacos

请参考:https://mp.csdn.net/postedit/101538928 

我们知道,springColud项目启动顺序为,启动Eureka,config,服务,config和服务先注册到Eureka,服务在通过config去git上读取服务配置。既然Nacos作用相当于springCloud中Eureka+Config,我们肯定是先启动Nacos,参考:https://blog.csdn.net/Mr_Errol/article/details/84935167

启动后,访问:http://localhost:8848/nacos/#/login 用户名,密码nacos

页面如图:

2,配置流程

设想一个一般情况,开发时,我在本地启动一个服务,并从配置中心读取配置信息,该怎么做?通常做法

1)在resources下,创建dev文件,作为开发环境,在其下创建配置文件,如下图

配置内容详解:#端口,服务名,nacos地址,命名空间,文件后缀,环境标志

2)在nacos创建开发环境命名空间

3)在开发环境命名空间,创建服务配置文件,文件名规则:服务名(service-provider)+中划线+环境标识(dev),且环境标识必须,配置文件中也必须制定

4)在配置文件中配置具体信息,如nacos服务发现,数据源,redis,mybatis

 所以读取配置流程应该是这样的,先从配置文件中的命名中间开始找,根据服务名和active环境,找具体的服务

3,配置信息

1)服务本地配置

#启动服务,并读取配置中心配置信息
server:
  8070
#启动服务,并读取配置中心配置信息
spring:
  application:
    name: service-provider
  cloud:
    nacos:
      config: # 读取配置中心配置文件,服务发现在配置文件中进行配置
        server-addr: 127.0.0.1:8848
        namespace: 'f3b66e3c-3dae-42f4-b409-4407fa5e1260'
        prefix: ${spring.application.name}
        file-extension: yaml
  profiles:
    active: dev

2)配置中心配置信息

useLocalCache: true
spring:
  datasource:
    url: jdbc:mysql://10.108.10.44:3306/payment?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: archives
    password: Archives@1234
    driver-class-name: com.mysql.jdbc.Driver
    maxActive: 30
    testOnBorrow: true
  ## 注册中心配置
  cloud:
    nacos:
      discovery:
        namespace: 'f3b66e3c-3dae-42f4-b409-4407fa5e1260'
        server-addr: 127.0.0.1:8848

三,代码实现并测试

可以从git上拉去nacos结合springCloud实现实例代码

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    /**
     * http://localhost:8080/config/get
     */
    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }

    //http://localhost:8080/config/get
}

访问地址:http://localhost:8080/config/get,查看配置文件配置信息

4,疑问

开发环境中,如果不创建dev文件,可直接从bootstrap.yml中读取开发环境配置,不创建dev文件有什么影响。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值