使用consul作为项目选项存储的框架
consul-options的Python项目详细描述
您想知道项目设置的存储频率是多少?当你的项目很小的时候 这不是什么大问题。但是如果你的大项目由几十个微服务组成 然后是集中配置管理的问题。图标有一个键/值 理想的存储空间。
使用consun options您可以用简单而优雅的方式在代码中定义和使用选项。 看看这个例子:
classDB(ConsulKV):passclassUsers(DB):host='127.0.0.1'port=5432user='postgres'password='postgres'dbname='users'classOrders(DB):host='127.0.0.1'port=5432user='postgres'password='postgres'dbname='orders'
现在您可以清楚地访问选项值:
fromconsul_optionsimportoptionsprintoptions.db.users.hostprintoptions.db.orders.dbname
consun options自动创建具有上面定义的默认值的文件夹和键 后来在领事馆读到了。所以如果有人更改db/orders/host键的值 在执政官那里你会得到不同的价值。
项目选项如何存储在consul中
当您基于consulkv声明一个新类时默认的bahavior是 在consun key/value存储中创建一个folder,类的名称用小写。 定义的每个类属性都将映射到键folder/key。 如果您不同意生成的文件夹名,您可以自由选择其他文件夹名 保留类属性\u key如下所示:
classWorkerOptions(ConsulKV):__key__='worker'host='127.0.0.1'port=80
之后,您可以使用路径中的“worker”访问该选项:
fromconsul_optionsimportoptionsprintoptions.worker.hostprintoptions.worker.port
要创建层次密钥结构,可以利用通常的类层次结构:
fromconsul_optionsimportConsulKV,optionsclassWorkerOptions(ConsulKV):__key__='worker'host='127.0.0.1'port=80classDB(WorkerOptions):host='127.0.0.1'port=5432user='postgres'password='postgres'printoptions.worker.db.host# 'host'printoptions.worker.db.port# 5432
也可以在根级别创建具有类属性\u root\u的键:
classRootOptions(ConsulKV):__root__=Truehost='127.0.0.1'port=80printoptions.hostprintoptions.port
兼容性
consun选项与python 2和python 3都兼容。
安装
使用PIP安装:
$ pip install consul-options
许可证
consulpoptions是在apache 2.0许可下开发和分发的。