diamond是淘宝开源的一款为应用系统提供动态配置的产品。它简单易用,应用系统运行过程中也可以对动态数据的变化进行感知并且获取变化后的配置数据。
首先我们说一下静态配置和动态配置。首先说一下静态配置,一般情况下,为了保证系统的稳定运行,公司一般都会准备多套环境,开发,测试,预发,线上等,每套环境的配置信息都有所不同。原来我们的方式是将不同的配置信息放到文件中,在不同的环境切换不同的配置,这种方式比较麻烦且容易出错,于是就有了配置项平台,将不同环境的配置值放到平台上,根据不同的环境拉取相应的配置进行渲染替换运行。这种方式降低了配置出错的概率且检查起来方便(不需要翻代码),但是每次配置项的替换都需要项目的编译部署,较为耗时。而动态配置它是及时生效的,随时修改,立即生效。所以总结下来,静态配置比较适合配置不经常变动的配置项,比如公司的公共组件,比如zookeeper的链接地址,mq的链接地址等,这些配置不易改变。如果是一些经常变动的数据,最好是放到动态配置中,随时修改都可以。
diamond就是动态配置里做的比较好的。它的持久配置会持久化到磁盘和数据库,在client端也会启动本地snapshot和从服务器获取数据等多种方式,最大程度的保证稳定。可以尝试