nacos 入门案例和基础概念总结

27 篇文章 0 订阅
12 篇文章 0 订阅

nacos - 配置管理

目标

1 能够说出配置中心的概念和使用场景。

2 了解主流的配置中心。

3 理解nacos 的功能特性

4 掌握使用和入门方法。

5 安装方式。

6 核心概念和数据模型。

1 什么是配置中心

1.1 什么是配置

应用程序启动的时候需要读取一些配置文件,服务发现,服务管理,服务治理。

  • 独立于程序的只读变量

  • 伴随着应用程序的整个生命周期

  • 多种加载方式)

    • 硬编码hard code 配置文件 环境变量,启动参数,基于数据库
  • 配置需要治理

    • 同一个程序在不同的环境(开发测试生产)。不同的集群需要有不同的配置
1.2 什么是配置中心

微服务架构中,当系统从一个单体应用,被拆分成了分布式系统上一个个服务节点后,配置文件必须跟着迁移(分割),这样配置就会分散了。还有一个问题就是 冗余

比如说apiadmin 中接口服务其实是通过负载均衡对外提供服务的。如果一个服务挂掉了。另一个服务会继续提供服务支持。

配置中心的作用,将配置从各个应用中剥离出来,对配置进行统一的管理,应用自身不需要去管理配置。

在这里插入图片描述

2 nacos 简介

2.1 主流配置中心对比

spring cloud config

apollo

nacos

性能层面 nacos 最好的。功能层面 apollo 最好。

2.2 nocos 简介

阿里开源的,支持服务发现,配置管理,服务治理的综合型解决方案

2.3 nacos 特性

主要提供四大功能

1 服务发现与服务健康检查

​ 服务注册更加的方便。提供了服务实时健康检查,防止向不健康的应用发送请求。

2 动态配置管理 *

​ 集中和动态的方式管理配置,消除了更新配置需要重新部署应用的麻烦,这种配置更加的高效和灵活。

3 动态DNS服务

​ DNS 协议服务发现的能力,主要是对异构语言的支持,支持注册在nacos 上的服务以域名的方式暴露端点,让第三方应用方便地查阅以及发现。

4 服务和元数据管理

​ 管理数据中心所有的服务以及元数据。

3 nacos 快速入门

3.1 安装
3.2 配置入门
3.2.1 发布配置
3.2.2 客户端获取配置

1>依赖引入

  <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.4.1</version>
  </dependency>

2>获取外部化配置

    public static void main(String[] args) throws NacosException {
        //使用nacos client 获取服务配置信息
        String dataId = "black_joker";
        String group = "DEFAULT_GROUP1";
        //nacos 地址
        String serverAddr = "localhost:8848";


        Properties properties = new Properties();
        properties.put("serverAddr",serverAddr);
        properties.put("username","nacos");
        properties.put("password","nacos");
        properties.put("namespace","");

        //获取配置
        ConfigService configService = NacosFactory.createConfigService(properties);
        //获取配置
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);

    }

4 nacos 配置管理基础应用

4.1配置管理(数据)模型

配置管理通过namespace、group、dataID。能够定位到一个配置集。

(namespace(group(dataId)))如何定位一个配置文件。也就是定位一个配置集。

配置集(dataID):

每个项目往往下面有若干工程,每个配置集(dataId)是一个工程的主配置文件。

​ 一个配置文件就是一个配置集,一个配置集可以包含系统的各种配置信息。

配置项

​ 配置集里面的内容。

配置分组(group)

代表某个项目 XXX系统,XXX平台

​ 分组的意思,不同的配置分组下面可以有相同的配置集(dataid) 在nacos 上创建一个配置时候,如果没有填写配置分组默认是 default_group 实际使用的作用是:能够区分不同的项目或者是应用

命名空间(namespace)

不同的环境 dev test prod 做隔离。

​ 对不同的环境进行隔离。主要是用来隔离不同的开发环境 (dev prod test )配置可能各不相同。或者是隔离不同的用户。不用的开发人员使用同一个nacos 管理各自的配置。不同的命名空间下可以存在相同的配置分组 group 或者是配置集 dataId

4.2 命名空间管理

namespace 的设计是nacos 基于多环境多租户 数据(配置和服务)隔离的。

  • 从一个租户的角度看,如果有多套环境可以指定namespace 来区分不同的环境。

在这里插入图片描述

  • 每个命名空间都有命名空间的 id。

  • public 是保留的命名空间,默认的命名空间。

4.3 配置管理
4.3.1 不同的命名空间的差异如果不大,可以做导出和克隆的操作。
4.3.2 历史版本查询
4.3.3 监听查询
        //启动监听

        configService.addListener(dataId, group, new Listener() {
            @Override
            public Executor getExecutor() {
                return null;
            }


            //当配置有变化的时候获取通知
            @Override
            public void receiveConfigInfo(String s) {
                System.out.println(s);
            }
        });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值