连微服务Nacos配置中心都不了解,那你可能注定就是个码农

本文探讨了Nacos配置中心的背景、基本概念,包括命名空间、配置管理和一致性存储。介绍了Nacos如何通过mysql+异步全量通知和raft+derby实现一致性,并详细阐述了客户端订阅变更、配置灰度发布和历史回滚功能。Nacos的存储设计兼顾性能和一致性,订阅方式采用长轮训,以降低资源消耗。
摘要由CSDN通过智能技术生成

背景

在我们最开始做一些简单的学习项目的时候,我们会遇到一些需要配置的东西,比如数据库连接池大小,用户的黑名单等等,我们都把这些东西写死在代码里面,比如if(userId == 123){do something},这种代码在项目里随处可见。后来参加工作了,发现这种写法并没有将配置很好的统一管理起来,配置地方随处可见,并且无法根据代码环境去进行调整,比如线上和线下都只能使用同一个配置,虽然可以通过if,else的方式,但是这个非常麻烦,所以在工作就开始使用xml,yaml等方式在文件里面进行配置,在不同的运行环境读取不同的配置。这种方式基本满足了大部分的需求,但是后面遇到了一个需要动态去修改这些配置的情况,如果通过文件的方式我们就只能修改文件然后重新上线服务,这样是非常麻烦的,所以就诞生了配置中心。

我们在这里可以想想,如果你要实现配置中心,应该具备哪些功能呢?我这里列举一些:

  • 可以动态的修改配置。
  • 配置中心挂了也不影响配置的使用。
  • 配置是可以多个服务共享的。
  • 支持权限管理,只有授予权限的人才能查看和修改配置
  • 配置可以回滚,当我们遇到配置出现问题的时候可以像回滚服务一样回滚配置。
  • 灰度发布,可以让某几台机器先使用这个配置如果没有问题,在进行全量。
  • 配置中心自身的QPS能保证足够,如果是一个公司的基础服务的话是需要保证这个的

其实在开源的项目中有挺多配置中心的开源的比如spring cloud config, Apollo等等,其中Apollo是携程开源的配置中心,在业界也是非常出名,我们这边文章主要还是介绍Nacos的配置中心,当然有兴趣的同学可以下来自行查看其他注册中心相关介绍。

基本概念

同样的我们首先也先介绍一下和注册中心相关的一些基本名词概念:

  • 命名空间(namespace):和注册中心一样,命名空间属于Nacos顶层的结构,用于进行租户级别的隔离,我们最常用的就是不同环境比如测试环境,线上环境进行隔离。
  • 配置管理:系统配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动。
  • 配置项:一个具体的可配置的参数与其值域,通常以 param-key=param-value 的形式存在。例如我们常配置系统的日志输出级别(logLevel=INFO|WARN|ERROR) 就是一个配置项。
  • 配置集: 一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。
  • 配置集 ID : Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。
  • 配置分组:Nacos 中的一组配置集,是组织配置的维度之一。
  • 配置快照:Nacos 的客户端 SDK 会在本地生成配置的快照。当客户端无法连接到 Nacos Server
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值