栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Nacos服务部署及配置读取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Nacos服务部署及配置读取

Nacos服务部署及配置读取 拉取nacos镜像
docker pull nacos/nacos-server

启动nacos容器
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server

使用python读取nacos配置
# -*- coding: utf-8 -*-
import configparser
import json
import logging
import requests
import yaml


class NacosCodeException(Exception):
    """Nacos 接口返回异常状态码"""

    def __init__(self, value: str):
        self.value = value

    def __str__(self):
        return f"Nacos 接口返回状态码不等于200, status_code={self.value}"


class NacosLoadException(Exception):
    """ Nacos 数据结构异常"""

    def __init__(self, data_id: str, group: str, conf_type: str):
        self.data_id = data_id
        self.group = group
        self.conf_type = conf_type

    def __str__(self):
        return f"Nacos 数据结构错误, data_id={self.data_id}, " 
               f"group={self.group}, conf_type={self.conf_type}"


def nacos_conf_load(data_id: str, group: str, conf_type: str):
    """从Nacos读取配置"""
    assert conf_type in ("json", "ini", "yaml")

    params = {
        "dataId": data_id,
        "group": group
    }
    r = requests.get("http://127.0.0.1:8848/nacos/v1/cs/configs", params=params)
    if r.status_code != 200:
        raise NacosCodeException(str(r.status_code))
    # 加载配置信息
    try:
        if conf_type == "json":
            config = json.loads(r.text)
        elif conf_type == "ini":
            cf = configparser.RawConfigParser()
            cf.read_string(r.text)
            config = {}
            config.update(cf)
        else:
            config = yaml.load(r.text, Loader=yaml.SafeLoader)
    except Exception:
        raise NacosLoadException(data_id, group, conf_type)
    return config

if __name__ == "__main__":
	# nacos连通测试用
    conf = nacos_conf_load("test11", "DEFAULT_GROUP", "yaml")
    print(conf)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号