用于nacos的python客户端。

nacos-sdk-python的Python项目详细描述


nacos sdk python

NacosOpenAPI的Python实现。

参见:https://nacos.io/zh-cn/docs/open-api.html

pypi versionlicense

支持的Python版本:

蟒蛇2.7 Python 3.6 蟒蛇3.7

支持的NACOS版本

纳科斯0.8.0

安装

pip install nacos-sdk-python

开始

importnacosSERVER_ADDRESSES="server addresses split by comma"NAMESPACE="***"client=nacos.NacosClient(SERVER_ADDRESSES,namespace=NAMESPACE)# get configdata_id="config.nacos"group="group"print(client.get_config(data_id,group))

配置

client = NacosClient(server_addresses, namespace=your_ns)
  • 服务器地址-必需-NACOS服务器地址,如果超过1,则用逗号分隔。
  • 命名空间-命名空间。|默认值:

附加选项

可通过设置选项设置额外选项,如下所示:

client.set_options({key}={value})

可配置的选项有:

  • 默认超时-从服务器获取配置的默认超时(秒)。
  • 拉入超时-长轮询超时(秒)。
  • 拉取配置大小-一个轮询进程监听的最大配置项目数。
  • 回调线程数-调用回调的并发性。
  • 故障转移库-存储故障转移配置文件的目录。
  • 快照库-存储快照配置文件的目录。
  • 无快照-若要禁用默认快照行为,可以通过get方法中的paramno_snapshot重写此操作。

API参考

获取配置

< Buff行情>

nacosclient.get_config(数据标识、组、超时、无快照)

  • param数据id数据id.

  • param如果未指定组,请使用默认组。

  • param请求服务器超时(秒)。

  • param没有快照服务器不可用时是否使用本地快照。

  • 返回 W 按优先级获取一个配置项的值:

  • 步骤1-从本地故障转移目录获取(默认值:${cwd}/nacos data/data)。

    • 可以提前从快照目录(默认:${cwd}/nacos data/snapshot)手动复制故障转移目录。
    • 这有助于抑制已知服务器故障的影响。
  • 步骤2-从一台服务器获取,直到获取值或尝试所有服务器。

    • 从服务器获取内容后,内容将保存到快照目录。
  • 步骤3-从快照目录获取。

添加观察者

< Buff行情>

nacosclient.add_config_watchers(data_id,group,cb_list)

  • param数据id数据id.
  • param如果未指定组,请使用默认组
  • paramcb_list要添加的回调函数列表。
  • 返回

将监视程序添加到指定的配置项。

  • 更改或删除项目后,将调用回调函数。
  • 如果该项已存在于服务器中,则回调函数将被调用一次。
  • 允许对一个项进行多次回调,并且所有回调函数都由threading.thread
  • 从curr调用回调函数耳鼻喉科手术。

删除监视程序

< Buff行情>

nacosclient.remove_config_watcher(数据ID、组、CB、全部删除)

  • param数据id数据id.
  • param如果未指定组,请使用"默认组"。
  • paramcb要删除的回调函数。
  • param全部删除是删除所有出现的回调还是只删除一次。
  • 返回

从指定的键中删除观察程序。

发布配置

< Buff行情>

nacosclient.publish配置(数据标识、组、内容、超时)

  • param数据id数据id.
  • param如果未指定组,请使用"默认组"。
  • 参数内容配置值。
  • param请求服务器超时(秒)。
  • 如果成功或将引发异常,则返回true。

将一个数据项发布到NACOS。

  • 如果数据密钥不存在,请先创建一个。
  • 如果数据密钥存在,请更新到指定的内容。
  • 内容不能设置为"无",如果需要删除配置项,请改用"删除"功能。

删除配置

< Buff行情>

nacosclient.remove配置(数据标识、组、超时)

  • param数据id数据id.
  • param如果未指定组,请使用"默认组"。
  • param请求服务器超时(秒)。
  • 如果成功或将引发异常,则返回true。

从NACOS中删除一个数据项。

注册实例

< Buff行情>

nacosclient.add_naming_instance(service_name,ip,port,cluster_name,weight,metadata,enable,healthy)

  • param要注册到的服务名称必需服务名称。
  • paramIP必需的实例的IP。
  • param端口必需实例的端口。
  • param要注册的群集名群集。
  • paramweight负载平衡重量的浮点数。
  • param元数据JSON字符串格式的额外信息。
  • paramenable一个bool值,用于确定实例是否已启用。
  • param健康一个bool值,用于确定实例是否健康。
  • 如果成功或将引发异常,则返回true。

注销实例

< Buff行情>

nacosclient.remove_naming_instance(服务名称、IP、端口、群集名称)

  • param要注销的服务名称必需服务名称。
  • paramIP必需的实例的IP。
  • param端口必需实例的端口。
  • param要从中注销的群集名
  • 如果成功或将引发异常,则返回true。

修改实例

< Buff行情>

nacosclient.modify_naming_instance(service_name,ip,port,cluster_name,weight,metadata,enable)

  • 参数服务名称必需服务名称。
  • paramIP必需的实例的IP。
  • param端口必需实例的端口。
  • 参数群集名称群集名称。
  • 参数de>重量负载平衡重量的浮点数。
  • param元数据JSON字符串格式的额外信息。
  • paramenable一个bool值,用于确定实例是否已启用。
  • 如果成功或将引发异常,则返回true。

查询实例

< Buff行情>

nacosclient.list_naming_instance(仅限服务名称、群集、正常状态)

  • param服务名称必需要查询的服务名称。
  • param群集用逗号分隔的群集名称。
  • param仅健康查询健康实例的bool值。
  • 返回实例信息列表(如果成功或出现异常)。

查询实例详细信息

< Buff行情>

nacosclient.get_naming_instance(服务名称、IP、端口、群集名称)

  • 参数服务名称必需服务名称。
  • paramIP必需的实例的IP。
  • param端口必需实例的端口。
  • 参数群集名称群集名称。
  • 返回如果成功或将引发异常,则返回实例信息。

发送实例节拍

< Buff行情>

nacosclient.send_heartbeat(服务名称、IP、端口、集群名称、权重、元数据)

  • 参数服务名称必需服务名称。
  • paramIP必需的实例的IP。
  • param端口必需实例的端口。
  • param要注册的群集名群集。
  • paramweight负载平衡重量的浮点数。
  • param元数据JSON字符串格式的额外信息。
  • 返回如果成功或将引发异常,则json对象包含服务器建议的节拍间隔。

调试模式

调试模式(如果有助于获得更详细的控制台登录信息)。

调试模式可通过设置:

NacosClient.set_debugging()
# only effective within the current process

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有办法使多个对象初始化更紧凑?   java确保BUnit包和测试包不包含在生产代码中   java如何使JTextField更小,而不是填满整个空间?   javaawt的矩形交点   用户连续登录应用程序的java条纹(Android)   maven如何在服务器上运行java项目,并将其作为jar添加到EAR项目中   java如何在jar/war的资源文件夹中创建png?   swing在Java中未选择列表项时禁用按钮   java GridView x BaseAdapter并在onItemClick中重新加载   java Apache POI未应用某些颜色索引   java创建URL使用uri有什么区别。解析/uri。生成器/连接字符串?   java JavaFX jfoenix运行时错误(JFXDatePicker)   右旋转二叉搜索树   在Java标准版中运行Java移动应用程序   java为什么要为每个实例创建静态hashmap?   java如何使用RTC唤醒和报警意图   java获取对象中的JSON表达式   (Java)服务器不接受多个连接   java为什么我的目的地为null?   java使用多个参数执行存储过程,并使用spring数据jpa将结果集映射到非实体类