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

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 有些库不兼容,更高版本估计也有问题。

### Nacos-SDK-Python V2 版本的相关信息 Nacos 是阿里巴巴开源的一款用于服务发现和服务管理的工具,而 `nacos-sdk-python` 则是其 Python 客户端实现。以下是关于 `nacos-sdk-python` v2 版本的信息及其安装指南。 #### 1. 安装方法 可以通过 PyPI 来安装 `nacos-sdk-python` 的最新版本。如果需要指定 v2.x 版本,则可以使用以下命令: ```bash pip install nacos-sdk-python==2.* ``` 此命令会自动下载并安装最新的 v2.x 系列版本[^3]。 #### 2. 配置依赖环境 为了确保客户端能够正常运行,需确认已安装 Python 3.6 或更高版本。此外,还需要配置好 Nacos Server 地址以及相关认证信息(如适用)。具体初始化代码示例如下所示: ```python from nacos import NacosClient client = NacosClient(server_addresses="http://localhost:8848", namespace="", ak=None, sk=None) data_id = "example" group = "DEFAULT_GROUP" config_content = client.get_config(data_id=data_id, group=group) print(config_content) ``` 上述代码展示了如何通过 `NacosClient` 获取配置项的内容[^4]。 #### 3. 文档与支持资源 官方文档提供了详细的 API 使用说明和最佳实践建议。对于 v2.x 版本的具体功能更新和支持特性,可访问 GitHub 上的项目页面获取更多信息: - **GitHub Repository**: https://github.com/nacos-group/nacos-sdk-python - **Release Notes**: 查看每次发布的变更日志以了解新增特性和修复问题[^5]。 #### 4. 常见问题排查 如果遇到任何兼容性或者连接方面的问题,请先验证网络连通性,并检查是否正确设置了权限参数。另外也可以尝试升级到最新稳定版来解决潜在 bug。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoderJia_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值