当前位置: 首页 > news >正文

Nacos配置中心,分组配置参考,以及python、go、bash客户端连接获取

Nacos使用说明

nacos官方网站 https://nacos.io/zh-cn/docs/v2/what-is-nacos.html

1、基本配置说明

nacosIP地址:http://xxxxx:8848/nacos/ 服务管理端登录账号:nacos XXX

Java最小配置,其他客户端可参考,配置可对应到第三章的其他客户端实现

spring:application:name: xxx #未配置前缀默认前缀profiles:active: dev #Java的区分配置文件cloud:nacos:config:server-addr: xxxx:8848 #nacos地址端口file-extension: yml #后缀refresh-enabled: true #动态刷新应用配置prefix: application #前缀group: xxxx #通过具体项目模块区分,后端为xxxxusername: nacospassword: xxxxx #后期会做调整以及权限管理namespace: xxxx #以具体环境为准,现有DEV,TEST,PROD

2.抽取配置

可将所有可配置的内容,包括但不限于Kafka地址,数据库地址,服务器IP,或者具体的一些参数或者日志等级等抽取为一个配置文件,支持yaml和properties方式,然后定义Data ID和Group,Data ID为配置文件名,具体加载规则根据客户端而定,Group则为模块名如后端为xxx,其他名称根据自身组件命名见名知意,然后将配置做好三个环境区分,DEV,TEST,PROD,然后配置相应的namespace

读取维度第一是namespace为环境隔离,生产测试开发,第二是Group为各自项目命名,dataid为具体配置名称。

以下三个配置(红色框内)维度确定到唯一配置:

在这里插入图片描述

3、核心概念(对应上图)

官方文档:https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

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

配置集: 一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。

配置集 ID: Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。

配置分组: Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如Buy 或Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如database_url 配置和MQ_topic 配置。

4、各个客户端连接示例代码仅供参考:

2.1python:

要使用Python客户端连接Nacos配置中心,您需要安装Nacos Python客户端库。可以使用pip命令安装该库,如下所示:

pip install nacos-sdk-python

安装完成后,您可以使用以下代码连接到Nacos配置中心:

from nacos import NacosClientclient = NacosClient('localhost:8848', namespace='example_namespace')data_id = 'example_data_id'
group = 'example_group'content = client.get_config(data_id, group)
print(content)

这里创建了一个NacosClient实例,并将Nacos Server的地址和命名空间作为参数传递。接下来,使用get_config方法从配置中心获取特定的配置项。您需要指定数据ID和组名,以便从配置中心检索正确的配置。

如果要向配置中心写入配置,可以使用以下代码:

from nacos import NacosClientclient = NacosClient('localhost:8848', namespace='example_namespace')data_id = 'example_data_id'
group = 'example_group'
content = 'example_content'client.publish_config(data_id, group, content)

在这里,使用publish_config方法将配置写入Nacos配置中心。您需要指定数据ID、组名和配置内容。

2.2go:

要使用Go语言连接到Nacos配置中心,您可以使用Nacos Go客户端库。可以使用go get命令安装该库,如下所示:

go get github.com/nacos-group/nacos-sdk-go

安装完成后,您可以使用以下代码连接到Nacos配置中心:

package mainimport ("fmt""github.com/nacos-group/nacos-sdk-go/clients/config_client""github.com/nacos-group/nacos-sdk-go/common/constant""github.com/nacos-group/nacos-sdk-go/common/logger"
)func main() {// 创建配置客户端configClient, err := config_client.NewConfigClient(constant.NewClientConfig(// Nacos Server地址[]constant.ServerConfig{{IpAddr: "localhost",Port:   8848,},},constant.WithNamespaceId("example_namespace"),),)if err != nil {logger.Error("创建配置客户端失败:", err)return}// 从配置中心获取配置dataId := "example_data_id"group := "example_group"content, err := configClient.GetConfig(constant.ConfigParam{DataId: dataId,Group:  group,},)if err != nil {logger.Error("获取配置失败:", err)return}fmt.Println(content)
}

在这里,创建了一个配置客户端实例,并将Nacos Server的地址和命名空间作为参数传递。接下来,使用GetConfig方法从配置中心获取特定的配置项。您需要指定数据ID和组名,以便从配置中心检索正确的配置。

如果要向配置中心写入配置,可以使用以下代码:

package mainimport ("fmt""github.com/nacos-group/nacos-sdk-go/clients/config_client""github.com/nacos-group/nacos-sdk-go/common/constant""github.com/nacos-group/nacos-sdk-go/common/logger"
)func main() {// 创建配置客户端configClient, err := config_client.NewConfigClient(constant.NewClientConfig(// Nacos Server地址[]constant.ServerConfig{{IpAddr: "localhost",Port:   8848,},},constant.WithNamespaceId("example_namespace"),),)if err != nil {logger.Error("创建配置客户端失败:", err)return}// 向配置中心写入配置dataId := "example_data_id"group := "example_group"content := "example_content"success, err := configClient.PublishConfig(constant.ConfigParam{DataId:  dataId,Group:   group,Content: content,},)if err != nil {logger.Error("写入配置失败:", err)return}fmt.Println(success)
}

在这里,使用PublishConfig方法将配置写入Nacos配置中心。您需要指定数据ID、组名和配置内容。

2.3bash/openAPI:

您可以使用curl命令从Nacos配置中心获取配置内容。假设您的Nacos Server运行在localhost:8848上,并且您要获取名为example_data_id的配置项,组名为example_group,您可以使用以下命令:

curl -X GET 'http://localhost:8848/nacos/v1/cs/configs?dataId=example_data_id&group=example_group'

如果您已经将命名空间设置为example_namespace,则需要使用以下命令:

curl -X GET 'http://localhost:8848/nacos/v1/cs/configs?dataId=example_data_id&group=example_group&namespaceId=example_namespace'

如果Nacos配置中心启用了安全认证,您需要在curl命令中指定用户名和密码。假设您的用户名为example_user,密码为example_password,您可以使用以下命令:

curl -X GET 'http://example_user:example_password@localhost:8848/nacos/v1/cs/configs?dataId=example_data_id&group=example_group'

这些命令将返回一个JSON格式的响应,其中包含名为example_data_id的配置项的内容。您可以使用标准的Bash命令来解析和处理响应。例如,您可以使用jq工具来提取JSON响应中的特定字段:

curl -X GET 'http://localhost:8848/nacos/v1/cs/configs?dataId=example_data_id&group=example_group' | jq -r '.content'

这将返回名为example_data_id的配置项的内容,您可以将其存储在一个变量中或使用其他标准Bash命令对其进行处理。

相关文章:

Nacos配置中心,分组配置参考,以及python、go、bash客户端连接获取

Nacos使用说明 nacos官方网站 https://nacos.io/zh-cn/docs/v2/what-is-nacos.html 1、基本配置说明 nacosIP地址:http://xxxxx:8848/nacos/ 服务管理端登录账号:nacos XXX Java最小配置,其他客户端可参考,配置可对应到第三章…...

node-red中有关用户登录,鉴权,权限控制的流程解析

前言 默认地,node-red编辑器可以被任何访问的用户操作,包括修改节点,流数据,重新部署流。 这种默认的部署方式只适用于运行在可靠的网络中。下面我就给大家介绍一下,在公网上部署node-red后,如何对其进行安全加固和权限验证。 主要分为三部分 开启https权限保护编辑器和…...

MQTT协议-使用CONNECT报文连接阿里云

使用网络调试助手发送CONNECT报文连接阿里云 参考:https://blog.csdn.net/daniaoxp/article/details/103039296 在前面文章介绍了如何组装CONNECT报文,以及如何计算剩余长度 CONNECT报文:https://blog.csdn.net/weixin_46251230/article/d…...

每日学术速递3.8

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Unleashing Text-to-Image Diffusion Models for Visual Perception 标题:释放用于视觉感知的文本到图像扩散模型 作者:Wenliang Zhao, Yongming Rao, Zuya…...

测牛学堂:软件测试之接口测试理论基础总结

接口概念 接口:系统之间数据交互的通道。 这个系统,可以是外部和内部,也可以是两个内部系统之间的通道。 比如我们前端的登录信息,主要是用户名和密码,它通过接口传递给后端,后端校验以后,把结…...

基于土壤数据与机器学习算法的农作物推荐算法代码实现

1.摘要 近年来,机器学习方法在农业领域的应用取得巨大成功,广泛应用于科 学施肥、产量预测和经济效益预估等领域。根据土壤信息进行数据挖掘,并在此基础上提出区域性作物的种植建议,不仅可以促进农作物生长从而带来经济效益&#…...

python中html必备基础知识

<!DOCTYPE html>此标签表示这是一个html文件<heml lang"en">向搜索引擎表示该页面是html语言&#xff0c;并且语言为英文网站&#xff0c;其"lang"的意思就是“language”&#xff0c;语言的意思&#xff0c;而“en”即表示English<head>…...

【专项训练】前言:刻意练习,不断的过遍数才是王道

如何精通一个领域? 拆分知识点刻意练习:每个区域的基础动作分解训练和反复刻意练习反馈(主动反馈、被动反馈、及时反馈)任何知识体系都是一颗树,一定要梳理成思维导图,明确知识与知识之间的关系! 通过7-8周密集训练,练好基本功,彻底攻克LeetCode! 严格执行五毒神掌!…...

【Leetcode】反转链表 合并链表 相交链表 链表的回文结构

目录 一.【Leetcode206】反转链表 1.链接 2.题目再现 3.解法A&#xff1a;三指针法 二.【Leetcode21】合并两个有序链表 1.链接 2.题目再现 3.三指针尾插法 三.【Leetcode160】相交链表 1.链接 2.题目再现 3.解法 四.链表的回文结构 1.链接 2.题目再现 3.解法 一.…...

M1、M2芯片Mac安装虚拟机

目录前言一、安装二、网络设置三、连接SSH客户端前言 一直想着给M1 Mac上安装虚拟机&#xff0c;奈何PD收费&#xff0c;找的破解也不稳定&#xff0c;安装上镜像就起不来。 注&#xff1a;挂长久的分享莫名其妙被封&#xff0c;需要安装包请私信我。 一、安装 虚拟机选择&a…...

算法刷题-只出现一次的数字、输出每天是应该学习还是休息还是锻炼、将有序数组转换为二叉搜索树

只出现一次的数字&#xff08;位运算、数组&#xff09; 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&…...

详解专利对学生、老师和企业员工、创业者、积分落户、地方补助的好处

大家好,我是英子老师。作为一名知识产权专家,深耕于专利行业十余年,具有丰富的专利工作经验:曾在大型专利代理机构从事专利代理工作、专利质检工作(抽查代理机构的专利代理人的撰写质量并评分);之后在知名上市企业、行业龙头企业担任高级专利工程师的职位,主要工作内容…...

Python图像处理:频域滤波降噪和图像增强

图像处理已经成为我们日常生活中不可或缺的一部分&#xff0c;涉及到社交媒体和医学成像等各个领域。通过数码相机或卫星照片和医学扫描等其他来源获得的图像可能需要预处理以消除或增强噪声。频域滤波是一种可行的解决方案&#xff0c;它可以在增强图像锐化的同时消除噪声。 …...

智能手机高端“酣战”,转机在何方?

经过多年发展&#xff0c;如今全世界有七成手机由中国制造&#xff0c;但在利润最丰厚的高端市场&#xff0c;国产厂商在很长一段时间之内都是形单影只&#xff0c;曾经一度跻身高端的“华为”因为封禁成了“绝唱”。 华为“失声”高端之后&#xff0c;其他一众国产厂商或主动…...

K8s pod 动态弹性扩缩容 HPA

一、概述Horizontal Pod Autoscaler&#xff08;HPA&#xff0c;Pod水平自动伸缩&#xff09;&#xff0c;根据平均 CPU 利用率、平均内存利用率或你指定的任何其他自定义指标自动调整 Deployment 、ReplicaSet 或 StatefulSet 或其他类似资源&#xff0c;实现部署的自动扩展和…...

C++中的类简要介绍

文章目录前言一、什么是类什么是对象1.类的概述2.对象的概述二、如何创建使用类三、class和struct创建类时的区别1.访问级别2.继承方式总结前言 本篇文章讲给大家介绍一个C中重要的概念&#xff0c;了解了这个概念大家就明白了为什么C会叫做面向对象编程了。 一、什么是类什么…...

项目管理工具DHTMLX Gantt灯箱元素配置教程:只读模式

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…...

从LiveData迁移到Kotlin的 Flow,才发现是真的香!

LiveData 对于 Java 开发者、初学者或是一些简单场景而言仍是可行的解决方案。而对于一些其他的场景&#xff0c;更好的选择是使用 Kotlin 数据流 (Kotlin Flow)。虽说数据流 (相较 LiveData) 有更陡峭的学习曲线&#xff0c;但由于它是 JetBrains 力挺的 Kotlin 语言的一部分&…...

【BOOST C++】组件编程(2)-- 组件的设计原理

GitHub - ros2/demos at foxy 一、说明 为了研究ROS2的组件编程&#xff0c;首先要理解如何何为组件。组件本是微软的发明物体&#xff0c;但是在ubuntu上需要自己从底层实现&#xff0c;就说ROS2不用你写&#xff0c;但是就能看明白也是需要一点理论功底的。本篇按照COM内幕的…...

基于单细胞多组学数据无监督构建基因调控网络

在单细胞分辨率下识别基因调控网络&#xff08;GRNs&#xff0c;gene regulatory networks&#xff09;一直是一个巨大的挑战&#xff0c;而单细胞多组学数据的出现为构建GRNs提供了机会。 来自&#xff1a;Unsupervised construction of gene regulatory network based on si…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...