一、前言
最近工作不忙闲来无事,仔细分析了公司整个项目架构,发现用到了很多阿里巴巴集团开源的框架,今天要介绍的是中间件diamond,访问了对应开发团队的博客(http://jm-blog.aliapp.com),认真学习了一下diamond,下面是本人学习中的一些心得,故写出来。
二、diamond学习笔记
1、diamond简介
diamond是一个管理持久配置(持久配置是指配置数据会持久化到磁盘和数据库中)的系统。无可厚非,淘宝内部正在使用diamond,在淘宝内部的绝大多数系统的配置都是由diamond统一管理的。diamond最大的特点就是简单、可靠、易用。diamond的简单是指diamond整体结构非常简单,从而减少了出错的可能性;diamond的可靠是指应用方在任何情况下都可以启动,例如:淘宝的核心系统最初一年多是由diamond所管理,在这期间并没有发生什么大的故障;diamond的易用是指客户端使用只需要两行代码,暴露出的接口都非常简单,易于理解。
对于应用系统而言,diamond为其提供获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。
2、快速使用
源码检出:http://code.taobao.org/svn/diamond/trunk。
server搭建:
a. mysql
mysql的安装(安装步骤请自行查阅资料,本人建议按照mysql官方文档),以root用户登录,建立用户并赋予权限,建立数据库,然后建表。脚本如下:
create database diamond;
grant all on diamond.* to CK@'%' identified by 'abc';
use diamond
create table config_info (
'id' bigint(64) unsigned NOT NULL auto_increment,
'data_id' varchar(255) NOT NULL default ' ',
'group_id' varchar(128) NOT NULL default ' ',
'content' longtext NOT NULL,
'md5' varchar(32) NOT NULL default ' ',
'gmt_create' datetime NOT NULL default '2010-05-05 00:00:00',
'gmt_modified' datetime NOT NULL default '2010-05-05 00:00:00',
PRIMARY KEY ('id'),
UNIQUE