super-diamond 提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。
可以建多个项目,每个项目分为三种profile(development、test、production), 能够控制profile 级别的权限。
所有参数均由development profile配置,test和production profile继承development profile配置,也可以覆盖其配置。 test和production profile只提供修改功能。
client 备份配置信息到本地文件系统,如果server不可用,可以使用本地备份。client 能够定时重连server,保证client高可用。
client 提供ConfigurationListener,当某个属性发生变化(add、update、clear), ConfigurationListener能够接收到ConfigurationEvent。
server 备份配置文件系统系统,如果数据库不用,能够保证对客户端提供数据(待完善)。
http://code.taobao.org/p/2015_superdiamond/src/trunk/ https://github.com/takeseem/diamond super-diamond ============= - 配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。 -
简介 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。 diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。 持久配置是指配置数据会持久化到磁盘和数据库中。 diamond的特点是简单、可靠、
首先看一下super()函数的定义: super([type [,object-or-type]]) Return a **proxy object** that delegates method calls to a **parent or sibling** class of type. 返回一个代理对象, 这个对象负责将方法调用分配给第一个参数的一个父类或者同辈的类去完成. parent o
对于单继承,super()只是引用基类型的一种更奇特的方法。这样,您可以使代码更易于维护,例如,如果您想更改基类型的名称。当您在任何地方使用super时,只需在class行中更改它。 不过,真正的好处在于多重继承。使用super时,一次调用不仅会自动调用all基类型的方法(按照正确的继承顺序),而且还将确保每个方法只调用一次。 这本质上允许类型具有diamond属性,例如,您有一个单一的基类型A,
在子类中初始化父类, 传统的方式是在子类中直接调用父类的__init__函数: class MyBaseClass(object): def __init__(self, value): self.value = value class MyChildClass(MyBaseClass): def __init__(self): MyBaseClass.__init__(self, 5) 在继承体
Deep Thoughts by Raymond Hettinger Ruminations on Computers, Programming and Life 原文链接 If you aren’t wowed by Python’s super() builtin, chances are you don’t really know what it is capable of doing
以下Copy自官方文档说明,可点击查看官网源文 翻译内容属于德德自译,有不当之处请指正,勿喷。。。 翻译括弧中是德德自己理解,通过代码验证的,勿喷。。。 super(type[, object-or-type]) Return a proxy object that delegates method calls to a parent or sibling class of type. This
1、来自python官网的解释: super([type[, object-or-type]]) Return a proxy object that delegates method calls to a parent or sibling class of type. This is useful for accessing inherited methods that have been o
super ( type [, object-or-type ] ) Return a proxy object that delegates method calls to a parent or siblingclass of type. This is useful for accessing inherited methods that havebeen overridden in a c
函数参考 以下内容引用自官方手册 返回一个代理对象,其可以用委派的方法调用类型的父系或兄弟类,这对于访问继承的方法(已经被重写的方法)很有用,检索顺序与使用getattr()相同。 类型的__mro__属性列出了getattr()和super()所用的方法解析检索顺序,该属性是动态的,并且无论何时更新继承层次都会改变。 如果第二个参数缺省,super对象的返回是未被绑定的;如果第二个参数是一个对象
It looks like this is a general problem caused by the fact that a function that is: 1. Defined in a class 2. References the name "super" (even if it's a local variable name, even if it's never called)
在 Laravel 中,大多数采用 .env 文件管理,深度配置都采用 config/*.php 配置。 在 ThinkSNS+ 这一现象并没有发生改变,我们也推崇使用 Laravel 方式进行管理配置,但是有时候我们往往需要后期配置, 但是后期配置不可能期望用户去修改配置文件。这很危险,用户大多都没有技术能力。 所以,在 ThinkSNS+ 在 Laravel 配置的基础上增加了一份更加灵活的配
Swoole框架提供了配置文件管理的功能。配置可以直接用数组的方式进行访问,底层会自动加载配置文件目录下的$key.php文件。配置文件必须在末尾return $array返回配置的信息。 使用方法 //在控制器中 $this->config['user']; //其他位置 Swoole::$php->config['user']; 设置配置文件路径 Swoole\Config::setPath
San CLI 的配置文件为san.config.js,该文件放在项目的根目录下,当执行 San CLI 命令时,San CLI 会自动读取san.config.js的内容,在项目创建后,首先需要修改san.config.js来配置文件打包等选项。San CLI UI 将配置的每一项转换为表单,同时将配置项的语义直观的展示在页面,无需查找文档,直接在San CLI UI中修改表单,保存后即可看到s
local settings 作为一个开源项目,我们在这方面做得并不是特别好——当然是有意如此的。不过,这里我们还是做一些简单的介绍。对于我们的项目来说,我们需要一些额外的配置,如我们的数据库中的DATABASES、DEFAULT_AUTHENTICATION_CLASSES、CORS_ORIGIN_ALLOW_ALL、SECRET_KEY应该在不同的环境中都有不同的配置。 我们可以一个创建loc
概述 应用的配置信息,一般通过环境变量来注入。这些配置的值,可以抽取出来,存放到ConfigMap里面。ConfigMap以Key-Value的形式来保存这些配置信息。 在部署应用的时候,可以通过引用ConfigMap的Key来设置环境变量,而不是直接赋值。这样可以集中管理配置信息,方便应用多次部署以及多个应用之间共享配置信息。
在 Swarm 集群中管理配置数据 在动态的、大规模的分布式集群上,管理和分发配置文件也是很重要的工作。传统的配置文件分发方式(如配置文件放入镜像中,设置环境变量,volume 动态挂载等)都降低了镜像的通用性。 在 Docker 17.06 以上版本中,Docker 新增了 docker config 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。