前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于nacos+ConfigParser实现Python近原生的云配置管理

基于nacos+ConfigParser实现Python近原生的云配置管理

原创
作者头像
皮皮熊
发布2019-09-25 20:50:50
5K0
发布2019-09-25 20:50:50
举报

一、场景

无论从程序开发还是线上管理,通过本地配置文件\写死代码进行配置管理都是不合适的。

其实本文是一篇水文,使用一个小的方法快速实现了所谓Python近原生的云配置管理,不会太高深。

二、nacos与ConfigParser

1、nacos

阿里巴巴开源的一个配置中心,详见

为什么公司有轮子,开源有那么多方案,选nacos呢?

  • 目前公司轮子大部分与其业务过于耦合

内部大部分轮子 管理端与配置中心耦合在一起(与业务场景强关联,对单个业务来说,确实是相似的东西,耦合在一起也是能理解)

  • 与其他开源相比(如consul),生态更好、sdk更完善
  • 个人比较熟悉这个组件

2、ConfigParser

python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件。

为什么不使用json、xml、yaml、properties来描述我们的配置文件呢?

  • 基于ConfigParser实现云配置管理,可能更加符合Pythonist的习惯。
  • 大量Python服务的配置文件是基于ConfigParser实现(服务迁移成本低)

三、实现

配置文件类似:

代码语言:txt
复制
[common]
url = www.qq.com

1、详细实现

代码语言:txt
复制
import nacos
import ConfigParser
import StringIO

SERVER_ADDRESSES = ""
NAMESPACE = ""
data_id = ""
group = ""
    
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
nacos_conf = client.get_config(data_id, group)

首先借助nacos-sdk-python生成一个nacos客户端

代码语言:txt
复制
conf = ConfigParser.ConfigParser()
conf.readfp(StringIO.StringIO(nacos_conf))
  • 支持read配置文件
  • 支持readfp一个file-like object (此处需要借助StringIO将nacos的结果转换)
代码语言:txt
复制
url = conf.get("common", "url")

四、参考

ConfigParser-标准库文档

nacos-官方文档

nacos-sdk-python

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、场景
  • 二、nacos与ConfigParser
    • 1、nacos
      • 2、ConfigParser
      • 三、实现
        • 1、详细实现
        • 四、参考
        相关产品与服务
        微服务引擎 TSE
        微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com