【轉】Diamond -- 分布式配置中心


特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處: http://www.cnblogs.com/mao2080/

一、簡介

  • Diamond是淘寶研發的分布式配置管理系統。使用Diamond可以讓集群中的服務進程動態感知數據的變化,無需重啟服務就可以實現配置數據的更新。
  • 具有簡單、可靠、易用等特點

二、使用方法

服務端搭建

1 准備工作

  • 安裝jdk
  • 安裝maven
  • 安裝tomcat
  • 安裝mysql

2 啟動mysql並創建數據庫和表

-- 創建Diamond數據庫
CREATE DATABASE IF NOT EXISTS `diamond` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `diamond`;


-- 配置表
CREATE TABLE IF NOT EXISTS `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 '',
  `src_ip` varchar(20) DEFAULT NULL,
  `src_user` varchar(20) DEFAULT NULL,
  `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 KEY `uk_config_datagroup` (`data_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 數據導出被取消選擇。


-- 組表
CREATE TABLE IF NOT EXISTS `group_info` (
  `id` bigint(64) unsigned NOT NULL AUTO_INCREMENT,
  `address` varchar(70) NOT NULL DEFAULT '',
  `data_id` varchar(255) NOT NULL DEFAULT '',
  `group_id` varchar(128) NOT NULL DEFAULT '',
  `src_ip` varchar(20) DEFAULT NULL,
  `src_user` varchar(20) DEFAULT NULL,
  `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 KEY `uk_group_address` (`address`,`data_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

3 下載源碼

git clone https://github.com/gzllol/diamond.git

4 打包

  1. 修改diamond-server/src/main/resources/system.properties文件,將diamond.server.addr的值換成Diamond服務器所在機器的ip地址
  2. 修改diamond-server/src/main/resources/jdbc.properties文件,配置mysql服務器的url,用戶名和密碼
  3. 在根目錄執行打包命令
mvn clean package -Dmaven.test.skip=true

5 用tomcat加載diamond-server/target/diamond-server.war

客戶端使用

1 將diamond-client jar包發布到maven倉庫

mvn clean deploy -Dmaven.test.skip=true

2 在工程中引入jar包

<dependency>
    <groupId>com.taobao.diamond</groupId>
    <artifactId>diamond-client</artifactId>
    <version>2.0.5.4.taocode-SNAPSHOT</version>
</dependency>

3 使用例子

        DiamondManager manager = new DefaultDiamondManager("${your_config_data_id}", new ManagerListener() {
            @Override
            public Executor getExecutor() {
                return null;
            }

            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("receive config: " + configInfo);
            }
        });

4 在配置中心界面添加一個配置

  1. 登陸配置中心(本機是127.0.0.1:8080),用戶名abc,密碼123
  2. 點擊左側“配置信息管理”
  3. 點擊添加配置信息
  4. 輸入data_id(就是配置的id,3中的${your_config_data_id})和配置內容
  5. 點擊“提交”
  6. 在更新配置時,客戶端會調用ManagerListener的回調函數receiveConfigInfo,參數就是最新的配置內容

5原文地址

https://github.com/gzllol/diamond


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM