【Nacos专题】Nacos Config

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Nacos专题】Nacos Config相关的知识,希望对你有一定的参考价值。

参考技术A

【专题回顾】
【Nacos专题】Nacos 快速入门
【Nacos专题】Nacos 集群搭建

Nacos 既可以作为注册中线,提供服务注册与发现;又是配置中心,提供配置的动态管理。Nacos 既能支持 properties 类型的配置,也能支持 ymal 类型的配置。

为了满足 多租户、多环境、多服务 配置隔离的需求,Nacos 提供了 Data Id 、 Group 以及 Namespace 不同管理级别的概念,利用 Nacos 定义的层级关系,用户可以非常方便的管理多环境的配置。

Data Id 的完成格式如下:

完整的 Data Id 由 3 部分构成,具体格式说明如下:

示例:

如果 Data Id 的值为 nacos-config-dev.properties ,则在 bootstrap.properties 配置如下:

如下图所示,用 Data Id 来区分开发、测试、生产环境配置:

在分布式系统中,我们经常会根据业务来对系统进行水平拆分,业务独立的模块单独构成一个系统,从而实现业务解耦。Nacos 的 Group 能够很好的应对分布式系统的配置管理。 Group 是 Data Id 的集合,按照业务系统来定义 Group ,然后再在每个 Group 下按照 dev 、 test 、 prod 来区分环境,这样整个系统配置就非常的清晰明了。

在 Nacos 服务端定义完分组后,还需要在项目中通过 spring.cloud.nacos.config.group 配置来指定分组, 这样在项目启动的时候,就能拉取指定分组下的配置。

如下图所示,为订单系统创建分组:

Namespace 是用于在多租户之间进行配置隔离,不同的 命名空间 下,可以存在相同的 Group 和 Data Id ,再配合 Nacos 的权限管理功能,针对用户角色(多组合),进行 Namespace 级别的读写权限控制。

Nacos 默认命名空间为 public ,当在新建一个 Namespace 时,Nacos会生成一个唯一标识UUID,在项目中通过 spring.cloud.nacos.config.namespace 来指定命名空间。

Nacos源码分析专题-环境准备

文章目录

1. 引言

要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行。

2.下载Nacos源码

Nacos的GitHub地址:https://github.com/alibaba/nacos

课前资料中已经提供了下载好的1.4.2版本的Nacos源码:

如果需要研究其他版本的同学,也可以自行下载:

大家找到其release页面:https://github.com/alibaba/nacos/tags,找到其中的1.4.2.版本:

点击进入后,下载Source code(zip):

3.导入项目工程Nacos源码

我们的课前资料提供了一个微服务项目,包含了服务注册、发现等业务。

将之前下载好的Nacos源码解压到项目目录中:

然后,使用IDEA将其作为一个module来导入:

1)选择项目结构选项:


在弹出窗口中,选择nacos源码目录:

然后选择maven模块,finish:

最后,点击OK即可:

导入后的项目结构:

4.proto编译

Nacos底层的数据通信会基于protobuf对数据做序列化和反序列化。并将对应的proto文件定义在了consistency这个子模块中:

我们需要先将proto文件编译为对应的Java代码。

5.什么是protobuf

protobuf的全称是Protocol Buffer,是Google提供的一种数据序列化协议,这是Google官方的定义:

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

可以简单理解为,是一种跨语言、跨平台的数据传输格式。与json的功能类似,但是无论是性能,还是数据大小都比json要好很多。

protobuf的之所以可以跨语言,就是因为数据定义的格式为.proto格式,需要基于protoc编译为对应的语言。

5.1.安装protoc

ProtobufGitHub地址:https://github.com/protocolbuffers/protobuf/releases

我们可以下载windows版本的来使用:

另外,课前资料也提供了下载好的安装包:

解压到任意非中文目录下,其中的bin目录中的protoc.exe可以帮助我们编译:

然后将这个bin目录配置到你的环境变量path中,可以参考JDK的配置方式:

5.2.编译proto

进入nacos-1.4.2consistency模块下的src/main目录下:

然后打开cmd窗口,运行下面的两个命令:

protoc --java_out=./java ./proto/consistency.proto
protoc --java_out=./java ./proto/Data.proto

如图:

会在nacosconsistency模块中编译出这些java代码:

6.运行

nacos服务端的入口是在console模块中的Nacos类:

我们需要让它单机启动:

然后新建一个SpringBootApplication

然后填写应用信息:

然后运行Nacos这个main函数:

将服务启动后,可以查看nacos控制台:

以上是关于【Nacos专题】Nacos Config的主要内容,如果未能解决你的问题,请参考以下文章

Nacos源码分析专题-环境准备

Nacos源码分析专题-环境准备

Nacos源码分析专题-Nacos小结

Nacos源码分析专题-Nacos小结

Nacos源码分析专题-Nacos小结

【Nacos专题】Nacos 快速入门