nacos集群的ap cp切换_阿里Nacos-配置-多环境

多环境的配置隔离是配置中心最基础的一个功能之一。不同的环境配置的值不一样,比如数据库的信息,业务的配置等。

Spring Boot 多环境配置

首先我们来回顾下在Spring Boot中用配置文件的方式怎么进行环境的隔离。

默认我们都会创建一个application.properties配置文件,这个文件是不区分环境的,通用。

为了区分环境我们可以为每个环境创建一个配置文件,比如;

  • 开发环境
  • application-dev.properties
  • 测试环境
  • application-test.properties

在项目部署的时候可以通过 spring.profiles.active=dev 来激活开发环境的配置,通过 spring.profiles.active=test 来激活测试环境的配置。

Apollo 多环境配置

既然讲到配置中心,那么我会已目前已经比较成熟的Apollo来进行一个对比,把一些相同的或者不同的点都分析出来,这样大家在选型的时候也能有个参考。

Apollo的多环境配置是在搭建的时候需要制定好目前支持多少个环境,每个环境下可以分不同的集群,集群这个是可以动态创建的。

4ae7ec449f41f8cd58bbadead41371cb.png

选择不同的环境,进行配置的操作,改动的就是这个环境下的配置。

在客户端接入的时候,通过指定env来获取对应环境下的配置,还有一点就是Apollo中每个环境的配置都是用DB来隔离的,每个环境都有自己的一个ConfigDB。

Nacos 多环境配置

Namespace用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

以上是官方对Nacos Namespace的介绍,如果用过Apollo的同学应该知道,在Apollo中的Namespace是配置文件的概念,跟Nacos的概念定义相差太大了。

而Nacos中配置文件的定义则是Data ID,在学任何一个框架的时候,首先要搞懂的就是它本身的一些概念。

在Nacos中要实现多环境的隔离,也就是说我们需要创建多个Namespace。

Nacos的最后一个菜单,名称为:命名空间,点进去我们可以看到下面的列表,可以去创建你想要的空间:

baecbf12fe81832a85fc7c356023085e.png

public是默认的,我们创建了一个dev环境,这个时候会生成一条数据,我们需要关注的是命名空间ID,为了防止命名空间名称冲突,在保存后会自动生成一个ID,项目中在指定当前环境的时候需要传空间ID,而不是空间名称。

创建空间后,在配置列表的页面上边我们可以选择不同的空间来进行切换。然后在对应的空间下创建配置。

a9af17f6460e4064ae230329d729b437.png

最后在我们的项目中,我们是以Spring Boot来进行讲解的,就在application.properties中指定当前项目的空间值即可:

nacos.config.namespace=334139e6-d700-4a7b-ae0d-5ae30abd94a8

最好的方式是在部署的时候,通过参数传递,如果你直接写在项目中,那么上线的时候是不是还得修改这个namespace为线上的namespace id。

Apollo在这块是这样设计的,环境可以配置在磁盘中的配置文件中,就相当于一台机器配置一个环境,那么这台机器上的应用就都是这个环境了,环境跟着机器走,不跟项目走。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 值传递机制

说明 案例1 案例2 案例3 案例4 案例5 案例6 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:24* function 将对象作为参数传递给方法*/ public class Circle {double radius;public double findArea() {return Math.PI * Ma…

密码学专题 非对称加密算法指令概述 RSA

非对称加密算法也称为公开密钥算法,其解决了对称加密算法密钥需要预分配的难题,使得现代密码学的研究和应用取得了重大发展。非对称加密算法的基本特点如下: 加密密钥和解密密钥不相同;密钥对中的一个密钥可以公开(称为公开密钥);根据公开密钥很难推算出…

python元胞自动机模拟交通_结构专栏 | 解析DEFORM软件中的元胞自动机法

点击上方蓝色字体,关注我们导语金属材料的性能取决于内部的微观组织结构,而好的材料性能和价格是产品最大的优势。随着现代物理冶金、热成形技术、热处理技术和计算机技术的兴起与发展,使预测和控制金属材料热加工过程中的组织演变成为可能。…

java 递归

概念 代码 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:42* function 递归:求n个数的和、乘积*/ public class Recursion {public static void main(String[] args) {Recursion recursion new Recursion();S…

密码学专题 非对称加密算法指令概述 DH算法指令

DH概述 用于密钥交换的公开算法,广泛应用于各种安全协议SSL协议同样支持DH算法DH算法使用之前需要预先共享两个参数,本原元g和模n,这两个参数影响到算法的安全性,因此需要预先生成并检测其安全性生成这些必要参数和管理这些参数的…

java 封装和隐藏 权限修饰符

概念 问题的引入 封装性的体现 权限修饰符 案例 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/3 15:28* function*/ public class Person {private int age;public void setAge(int age) { /* if (age<0||age>…

密码学专题 非对称加密算法指令概述 DSA算法指令

DSA算法和DSA指令概述 DSA算法是美国国家标准的数字签名算法&#xff0c;只具备数字签名的功能不具备密钥交换的功能生成DSA参数然后生成DSA密钥&#xff0c;DSA参数决定了DSA密钥的长度三个指令首先是dsaparam指令&#xff0c;该指令主要用来生成DSA密钥参数&#xff0c;并提…

每天定时打开某个网页_Python科普帖定时通知

0 复习上一关我们学习了selenium&#xff0c;它有可视模式与静默模式这两种浏览器的设置方法&#xff0c;二者各有优势。然后学习了使用.get(URL)获取数据&#xff0c;以及解析与提取数据的方法。在这个过程中&#xff0c;我们操作对象的转换过程&#xff1a;除了上面的方法&am…

java 构造器

概念 案例1 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/3 15:28* function*/ public class Person {private int age;private String name;public Person() {this.age 18;}public Person(int age, String name) {this.age …

密码学专题 信息摘要和数字签名指令

信息摘要 区别于对称加密和非对称加密&#xff0c;信息摘要算数是一种不可逆的操作&#xff0c;无论输入数据的大小输出的数据长度是固定的信息摘要算数对输入很敏感&#xff0c;即使数据变化很细微&#xff0c;输出的结果会出现很大的差异从不同输入得到相同的输出的概率非常…

dataframe 筛选_Spark.DataFrame与Spark.ML简介

本文是PySpark销量预测系列第一篇&#xff0c;后面会陆续通过实战案例详细介绍PySpark销量预测流程&#xff0c;包含特征工程、特征筛选、超参搜索、预测算法。在零售销量预测领域&#xff0c;销售小票数据动辄上千万条&#xff0c;这个量级在单机版上进行数据分析/挖掘是非常困…

密码学专题 证书和CA指令 证书和CA功能概述

为什么需要证书 实现了公钥和私钥的相互验证&#xff0c;但是任何人都可以生成很多的密钥对&#xff0c;密钥对并没有关联实体身份&#xff0c;因此诞生可数字证书前提是CA是所有用户都信任的用户需要将自己的信息和公钥交给CA进行认证生成一个属于自己并被其与用户认可的数字…

密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书

Req指令介绍 功能概述和指令格式 req指令一般来说应该是提供给证书申请用户的工具&#xff0c;用来生成证书请求以便交给CA验证和签发证书。但是&#xff0c;OpenSSL的req指令的功能远比这样的要求强大得多&#xff0c;它不仅可以生成RSA密钥、DSA密钥&#xff0c;以及将它们…

密码学专题 OpenSSL标准转换指令

概述 繁多复杂的各种文件编码格式、证书格式和密钥格式等。事实上&#xff0c;并非OpenSSL开发者想要将数字世界弄得如此令人头疼&#xff0c;只是由于各种原因&#xff0c;数字世界存在各种不同的标准&#xff0c;为了尽量兼容这些不同的标准&#xff0c;OpenSSL开发者才相应…

java pakage、import关键字

package介绍 常用的包 import 案例

密码学专题 OpenSSL中SSL相关指令

再谈SSL和OpenSSL 由于SSL协议已经是密码学和PKI技术中非常具体的一个应用协议&#xff0c;为了实现它&#xff0c;OpenSSL在密码学基础应用和PKI技术的基础实现上做了大量的工作&#xff0c;才逐渐形成和奠定了OpenSSL在密码学应用和PKI技术开发中的重要基础软件包地位。Open…

使用MetaMask实现转账交易时附带Input Data数据

进入如下页面&#xff0c;点击View Assert in Explorer进入Etherscan网站&#xff0c;就可以看到本账户先前所有的交易信息。 字段分析 Txn Hash 是交易的HashMethod&#xff1a;交易的类型&#xff0c;一般是两种&#xff0c;如果是Transfer指定的是合约部署&#xff1b;如…

Ubuntu安装Google浏览器

下载谷歌浏览器 直接使用Ubuntu自带的火狐浏览器进行下载 默认下载到/tmp临时文件夹里面&#xff0c;考虑到权限问题&#xff0c;需要将其移动到 Downloads文件夹下面使用命令 sudo mv ./goo&#xff08;Tab&#xff09;~/Down(Tab)使用命令行的方式进行下载 wget https://dl.g…