nacos-sdk-python——Python版本Nacos客户端

news2025/5/20 22:31:19

Nacos(Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它主要用于解决微服务架构中服务发现和配置管理的问题,提供了一站式解决方案。以下是 Nacos 的几个关键功能:

  1. 服务发现和健康检查:Nacos支持DNS和HTTP两种服务发现模式,帮助服务找到并相互通信,同时提供服务健康检查机制,确保服务的可用性。

  2. 动态配置管理:Nacos提供了集中化的配置管理功能,可以动态地对配置进行管理和推送,支持配置的灰度发布,帮助应用实现配置的动态更新而无需重启。

  3. 动态DNS服务:Nacos可以作为一个DNS服务,提供微服务名称到IP地址的解析,实现服务的负载均衡和故障转移。

  4. 服务管理:Nacos提供了可视化的管理界面,方便用户对服务进行管理和监控,包括服务的注册、发现、配置和元数据管理。

Nacos默认仅支持Java语言,其他语言客户端如python如果也要使用nacos提供的功能,要看官方说明,如下截图自官方文档:

其他语言的SDK

官方说明

正如上图官方说明,官方仅支持Java版本客户端,其他语音的客户端由社区来开发和维护,不过好在Python版本的客户端在社区中已经有人开发了——nacos-sdk-python,进入到这个开源项目中看看。

nacos-sdk-python

nacos-sdk-python

简单说明:Nacos OpenAPI 的 Python 实现。

下面来看看是否实现了 nacos 中最基本的配置中心和服务发现功能。

安装

按照文档中说明进行安装。

注意目前仅支持Python 2.7、Python 3.6、Python 3.7,nacos 版本为0.8.0 ~ 1.3.2。稳妥起见以 python3.6 为例展示。

pip install nacos-sdk-python

并且使用 python 的 requests 进行 http 请求模拟服务调用。

pip install requests

配置创建

这里新建一个命名空间名为 demo-app

配置创建

配置中心

首先测下一下 nacos 提供的配置中心功能,即客户端拉去配置中心的配置功能,提前在配置中心创建 Data Id 为 demo-app的配置,写入配置如图所示:
配置内容

python 客户端读取配置中心配置代码如下:

import nacos

# Both HTTP/HTTPS protocols are supported, if not set protocol prefix default is HTTP, and HTTPS with no ssl check(verify=False)
# "192.168.3.4:8848" or "https://192.168.3.4:443" or "http://192.168.3.4:8848,192.168.3.5:8848" or "https://192.168.3.4:443,https://192.168.3.5:443"
SERVER_ADDRESSES = "http://1.94.xx.xx:8848"
NAMESPACE = "c77472dd-768c-42b0-8755-xxxx"

# no auth mode
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
# auth mode
#client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE, username='nacos', password='nacos-xxxx')

# get config
data_id = "demo-app"
group = "DEFAULT_GROUP"
print(client.get_config(data_id, group))

输出如下图所示,可以拉到配置中心的配置信息:

拉去配置

服务调用

下面来演示下 python 客户端如何通过服务发现调用其他服务提供的能力。如下是一个 Java 客户端提供了服务 open-api,主要是一个接口 /hello,该接口功能为返回传入的数据。

服务发现

python客户端使用以下代码进行服务发现并调用服务提供的接口:

import pprint

import requests
import nacos

# Nacos server address and namespace
SERVER_ADDRESSES = "http://1.94.xx.xx:8848"
NAMESPACE = "c77472dd-768c-42b0-8755-xxxx"

# Create a Nacos client
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE, username='nacos', password='nacos-xxxx')

# Discover service instance
service_name = "open-api"
service_instance = client.list_naming_instance(service_name)
pprint.pprint(service_instance)

instance = service_instance["hosts"][0]
ip = instance['ip']
port = instance['port']

# Construct the service URL
service_url = f"http://{ip}:{port}/open-api/hello"

# Make an HTTP GET request
data = {
    "data": "Hello, CoderJia"
}
response = requests.post(service_url, json=data, headers={"Content-Type": "application/json"})

# Print the response
print(response.status_code)
print(response.json())

执行之后:

服务发现并调用

总结

nacos-sdk-python 这个项目已经实现了 nacos 的python 版本客户端基本功能,不过项目更新比较慢了,测试过程中发 python3.7 有些库不兼容,更高版本估计也有问题。
BVqc-1720323267655)]

总结

nacos-sdk-python 这个项目已经实现了 nacos 的python 版本客户端基本功能,不过项目更新比较慢了,测试过程中发 python3.7 有些库不兼容,更高版本估计也有问题。

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

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

相关文章

Ubuntu24.04清理常见跟踪软件tracker

尽量一天一更,不刷视频,好好生活 打开系统监视器,发现开机有个tracker-miner-fs-fs3的跟踪程序,而且上传了10kb的数据。 搜索知,该程序会搜集应用和文件的信息。 删除tracker 显示带tracker的apt程序 sudo apt lis…

人脸识别打卡系统一站式开发【基于Pyqt5的C/S架构】

人脸识别打卡系统 1、运用场景 课堂签到,上班打卡,进出门身份验证。 2、功能架构 人脸录入,打卡签到,声音提醒,打卡信息导出: 3、技术栈 python3.8,sqlite3,opencv,face_recognition,PyQt5,csv 第三方库: asgiref==3.8.1 click==8.1.7 colorama==0.4.6 co…

Mobile ALOHA: 你需不需要一个能做家务的具身智能机器人

相信做机器人的朋友最近一段时间一定被斯坦福华人团队这个Mobile ALOHA的工作深深所震撼,这个工作研究了一个能做饭,收拾衣服,打扫卫生的服务机器人,完成了传统机器人所不能完成的诸多任务,向大家展示了服务机器人的美…

Java实现一个库存详情系统

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

Apache Seata配置管理原理解析

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata配置管理原理解析 说到Seata中的配置管理,大家可能会想到Seata中适配…

阶段三:项目开发---大数据开发运行环境搭建:任务8:安装配置Redis

任务描述 知识点:安装配置Redis 重 点: 安装配置Redis 难 点:无 内 容: Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可…

4. 小迪安全v2023笔记 javaEE应用

4. 小迪安全v2023笔记 javaEE应用 ​ 大体上跟随小迪安全的课程,本意是记录自己的学习历程,不能说是完全原创吧,大家可以关注一下小迪安全。 若有冒犯,麻烦私信移除。 默认有java基础。 文章目录 4. 小迪安全v2023笔记 javaEE应…

文心智能体平台快速创建一个HY(Lisp)编程小助手

现在可以在文心智能体平台,使用文心一言创建各种智能体了!创建步骤如下: 创建知识库 可以使用本地上传的方式来提交,鼠标移动到”查看模板“,可以下载”知识库外链上传示例模版.xlsx“,按照模板里的格式&…

调制信号识别系列 (一):基准模型

调制信号识别系列 (一):基准模型 说明:本文包含对CNN和CNNLSTM基准模型的复现,模型架构参考下述两篇文章 文章目录 调制信号识别系列 (一):基准模型一、论文1、DL-PR: Generalized automatic modulation classification method b…

android之蓝牙遥控器新增键值

文章目录 简述连接蓝牙代码流程总结简述 使用android 10平台来适配蓝牙遥控器新增的键值 连接蓝牙 当使用遥控器与蓝牙进行配对成功后,就可以通过getevent获取蓝牙打印的信息,如下所示 其中000700a0是发送过来的协议(0007)和码值(00a0)的组合。0xfa是驱动定义好的值,如果…

100359.统计X和Y频数相等的子矩阵数量

1.题目描述 给你一个二维字符矩阵 grid,其中 grid[i][j] 可能是 X、Y 或 .,返回满足以下条件的子矩阵数量: 包含 grid[0][0]X 和 Y 的频数相等。至少包含一个 X。 示例 1: 输入: grid [["X","Y",…

suricata7 rule加载(二)加载header

suricata7.0.5 alert http any any -> [192.168.1.27,1.192.137.27] 80 (msg:“HTTP Request Example”; flow:established,to_server; http.method; content:“POST”; http.uri; content:“query.php”; bsize:>9; http.protocol; content:“HTTP/1.1”; bsize:8; http…

Google Java Style Guide深度解读:打造优雅的代码艺术

在软件工程的世界里,代码不仅仅是实现功能的工具,它也是团队之间沟通的桥梁,是软件质量和可维护性的直接反映。Google Java Style Guide作为一套广受认可的编码规范,不仅定义了代码的书写规则,更深刻地影响着Java开发者…

Polar Si9000软件详细使用教程

Polar Si9000软件是一款简单易用的阻抗计算神器,文本详细介绍该软件的使用。 一、安装 网上很多安装包,这里不赘述,需要注意的是,如果要希望使用中文版,需要在如下路径中放入简体中文配置文件(PJ包一般会有…

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一,创建Module报错二,原因分析三,解决方案1,点击上图的加号,把JDK8添加进来即可2,点击左侧[Project],直接设置SDK为JDK8 四,配置检查与验证 一,创建Module报错 …

Redis基础教程(十四):Redis连接

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

手机日记本小程序模板源码

简洁的个人日记,博客记录,写日记手机小程序页面模板。包含:日记主页、通知、我的主页、写日记、登录、注册等等。 手机日记本小程序模板源码

css样式学习样例之边框

成品效果 边框固定 .login_box{width: 450px;height: 300px;background-color: aliceblue;border-radius: 3px;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%); }这段CSS代码定义了一个名为.login_box的类的样式,它主要用于创建一个登录框…

分类模型、回归模型的常见评价指标

文章目录 分类模型的评价指标1. Recallk公式举例代码 2. Precisionk公式举例代码 3. F1k公式代码 4.[其它常见的分类模型评价指标](https://blog.csdn.net/LiuRuiaby35646/article/details/136711918) 回归模型的评价指标1.均方误差(Mean Square Error)公…

柳叶刀:5Kg负重巡飞无人机技术详解

一、引言 随着无人机技术的不断发展,巡飞无人机在军事侦察、环境监测、边境巡逻等领域的应用日益广泛。其中,“柳叶刀”作为一款5Kg负重巡飞无人机,凭借其独特的机体结构、高效的动力系统、先进的飞行控制系统等技术优势,在众多无…