【Nacos】Python讀取Nacos中的ini配置

一、場景

無論從程序開發還是線上管理,通過本地配置文件\寫死代碼進行配置管理都是不合適的。

其實本文是一篇水文,使用一個小的方法快速實現了所謂Python近原生的雲配置管理,不會太高深。

二、nacos與ConfigParser

1、nacos

阿里巴巴開源的一個配置中心,詳見

爲什麼公司有輪子,開源有那麼多方案,選nacos呢?

  • 目前公司輪子大部分與其業務過於耦合

內部大部分輪子 管理端與配置中心耦合在一起(與業務場景強關聯,對單個業務來說,確實是相似的東西,耦合在一起也是能理解)

  • 與其他開源相比(如consul),生態更好、sdk更完善
  • 個人比較熟悉這個組件

2、ConfigParser

python使用自帶的configparser模塊用來讀取配置文件,配置文件的形式類似windows中的ini文件。

爲什麼不使用json、xml、yaml、properties來描述我們的配置文件呢?

  • 基於ConfigParser實現雲配置管理,可能更加符合Pythonist的習慣。
  • 大量Python服務的配置文件是基於ConfigParser實現(服務遷移成本低)

三、實現

配置文件類似:

[common]
url = www.qq.com

1、詳細實現

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客戶端

conf = ConfigParser.ConfigParser()
conf.readfp(StringIO.StringIO(nacos_conf))
  • 支持read配置文件
  • 支持readfp一個file-like object (此處需要藉助StringIO將nacos的結果轉換)
url = conf.get("common", "url")

四、參考

ConfigParser-標準庫文檔

nacos-官方文檔

nacos-sdk-python

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章