日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

diamond淘宝框架使用

發(fā)布時(shí)間:2024/2/28 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 diamond淘宝框架使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


一、概況

diamond是淘寶內(nèi)部使用的一個(gè)管理持久配置的系統(tǒng),它的特點(diǎn)是簡(jiǎn)單、可靠、易用,目前淘寶內(nèi)部絕大多數(shù)系統(tǒng)的配置,由diamond來(lái)進(jìn)行統(tǒng)一管理。

diamond為應(yīng)用系統(tǒng)提供了獲取配置的服務(wù),應(yīng)用不僅可以在啟動(dòng)時(shí)從diamond獲取相關(guān)的配置,而且可以在運(yùn)行中對(duì)配置數(shù)據(jù)的變化進(jìn)行感知并獲取變化后的配置數(shù)據(jù)。

持久配置是指配置數(shù)據(jù)會(huì)持久化到磁盤(pán)和數(shù)據(jù)庫(kù)中。

diamond的特點(diǎn)是簡(jiǎn)單、可靠、易用:

簡(jiǎn)單:整體結(jié)構(gòu)非常簡(jiǎn)單,從而減少了出錯(cuò)的可能性。

可靠:應(yīng)用方在任何情況下都可以啟動(dòng),在承載淘寶核心系統(tǒng)并正常運(yùn)行一年多以來(lái),沒(méi)有出現(xiàn)過(guò)任何重大故障。

易用:客戶(hù)端使用只需要兩行代碼,暴露的接口都非常簡(jiǎn)單,易于理解。

二、快速使用

1、源代碼檢出

從以下svn地址檢出diamond的源代碼:

http://code.taobao.org/svn/diamond/trunk

2、server的搭建

(1)MySQL

安裝mysql-server的步驟請(qǐng)參考mysql官方文檔,安裝完畢后,以root用戶(hù)登錄,建立用戶(hù)并賦予權(quán)限,建立數(shù)據(jù)庫(kù),然后建表,語(yǔ)句分別如下:

create database diamond;

?

use diamond

CREATE TABLE `config_info` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `data_id` varchar(100) DEFAULT NULL,
? `group_id` varchar(100) DEFAULT NULL,
? `content` varchar(100) DEFAULT NULL,
? `md5` varchar(100) DEFAULT NULL,
? `gmt_create` datetime DEFAULT NULL,
? `gmt_modified` datetime DEFAULT NULL,
? PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

完成后,請(qǐng)將數(shù)據(jù)庫(kù)的配置信息(IP,用戶(hù)名,密碼)添加到diamond-server工程的src/resources/jdbc.properties文件中的db.url,db.user,db.password屬性上面,這里建立的庫(kù)名,用戶(hù)名和密碼,必須和jdbc.properties中對(duì)應(yīng)的屬性相同。

(2)tomcat

tomcat是diamond?server的運(yùn)行容器。

tomcat的安裝請(qǐng)參考tomcat官方文檔,建議使用tomcat7

不需要對(duì)tomcat進(jìn)行任何改動(dòng)。

(3)diamond?server

在diamond-server源代碼根目錄下,執(zhí)行mvn?clean?package?-Dmaven.test.skip,成功后會(huì)在diamond-server/target目錄下生成diamond-server.war(如果沒(méi)有安裝maven,請(qǐng)參考maven官方文檔進(jìn)行安裝)。

打包完成后,將diamond-server.war放在tomcat的webapps目錄下。

啟動(dòng)tomcat,即啟動(dòng)了diamond-server

(4)http?server

http?server用來(lái)存放diamond?server等地址列表,可以選用任何http?server,這里以tomcat為例。

一般來(lái)講,http server和diamond server是部署在不同機(jī)器上的,這里簡(jiǎn)單起見(jiàn),將二者部署在同一個(gè)機(jī)器下的同一個(gè)tomcat的同一個(gè)應(yīng)用中,注意,如果部署在不同的tomcat中,端口號(hào)一定是8080,不能修改(所以必須部署在不同的機(jī)器上)。

在(3)的tomcat的webapps中的diamond-server中建立文件diamond,文件內(nèi)容是diamond-server的地址列表,一行一個(gè)地址,地址為IP,例如:

127.0.0.1

完成以上4步后,server端的搭建就完成了。

2、發(fā)布數(shù)據(jù)

diamond發(fā)布數(shù)據(jù)通過(guò)手工的方式進(jìn)行。

在瀏覽器中輸入http://ip:8080/diamond-server/,ip為server搭建的第(2)步中的地址,以abc為用戶(hù)名,123為密碼,登錄后進(jìn)入后臺(tái)管理界面,然后點(diǎn)擊“配置信息管理”——?“添加配置信息”,在輸入框中輸入dataId、group、內(nèi)容,最后點(diǎn)擊“提交”即可。

成功后,可以在“配置信息管理”中查詢(xún)到發(fā)布的數(shù)據(jù)。

3、訂閱數(shù)據(jù)

diamond客戶(hù)端API主要提供了訂閱數(shù)據(jù)的功能.

(1)客戶(hù)端獲取服務(wù)端地址

獲取服務(wù)端地址對(duì)客戶(hù)端是透明的,客戶(hù)端僅僅需要在本地進(jìn)行如下域名綁定即可:

ip ? ?a.b.c

ip為前面搭建的http-server的ip

(2)創(chuàng)建訂閱者

public class DiaMondTest {


public static void main(String[] args) {
DiamondManager manager = new DefaultDiamondManager("t_group", "t_dataid", new ManagerListener() {


public Executor getExecutor() {
System.out.println("==========getExecutor========");
return null;


}


public void receiveConfigInfo(String configInfo) {


// 客戶(hù)端處理數(shù)據(jù)的邏輯
System.out.println("==========configInfo========"+configInfo);


}


});

System.out.println("==="+manager.getAvailablePropertiesConfigureInfomation(5000));
?

//System.out.println("==s="+configInfo);


}


}

參數(shù)的說(shuō)明:

group和dataId為String類(lèi)型,二者結(jié)合為diamond-server端保存數(shù)據(jù)的惟一key

ManagerListener?是客戶(hù)端注冊(cè)的數(shù)據(jù)監(jiān)聽(tīng)器,?它的作用是在運(yùn)行中接受變化的配置數(shù)據(jù),然后回調(diào)receiveConfigInfo()方法,執(zhí)行客戶(hù)端處理數(shù)據(jù)的邏輯。如果要在運(yùn)行中對(duì)變化的配置數(shù)據(jù)進(jìn)行處理,就一定要注冊(cè)ManagerListener

(3)獲取配置數(shù)據(jù)

String?configInfo?=?manager.getAvailableConfigureInfomation(timeout);

diamond-server端保存的配置全都為文本類(lèi)型,返回給客戶(hù)端的配置數(shù)據(jù)為Java.lang.String類(lèi)型,timeout為從網(wǎng)絡(luò)獲取配置數(shù)據(jù)的超時(shí)時(shí)間。客戶(hù)端調(diào)用每次調(diào)用該方法,都能夠保證獲取一份最新的可用的配置數(shù)據(jù)。

總結(jié)

以上是生活随笔為你收集整理的diamond淘宝框架使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。