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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于zookeeper实现系统配置中心

發(fā)布時(shí)間:2025/3/20 windows 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于zookeeper实现系统配置中心 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

服務(wù)器端:

一、 寫作目的

由于目前本公司產(chǎn)品眾多,并且由于業(yè)務(wù)上的需求增加,導(dǎo)致目前公司產(chǎn)品越來越復(fù)雜,各個(gè)業(yè)務(wù)系統(tǒng)的公共配置以及應(yīng)用自己的配置都存儲與各個(gè)屬性文件管理,給運(yùn)維人員帶來了極大的工作量。

二、服務(wù)端介紹

1.總體介紹

?sysware配置中心服務(wù)端,采用zookeeper用來存儲公共以及各業(yè)務(wù)系統(tǒng)的配置屬性。并且提供前端界面進(jìn)行維護(hù)這些屬性配置。采用mysql數(shù)據(jù)進(jìn)行數(shù)據(jù)的持久化。

?

2.各模塊介紹

? 1)? ? zookeeper

?對于系統(tǒng)中各配置的存儲,目前規(guī)劃的存儲結(jié)構(gòu)如下:

節(jié)點(diǎn)說明

描述

common公共配置
p2mp2m系統(tǒng)私有配置
keke系統(tǒng)私有配置
eapeap系統(tǒng)私有配置
edmedm系統(tǒng)私有配置

節(jié)點(diǎn)說明

描述

key配置屬性鍵
value配置屬性值

?

建議:為了能夠區(qū)分各個(gè)業(yè)務(wù)系統(tǒng)的配置,建議規(guī)則為使用:sysware? ?+? ?點(diǎn)? +? ?業(yè)務(wù)系統(tǒng)名稱? + 點(diǎn) +? 服務(wù)名稱 +? ?點(diǎn) +key

? ? ? ? ? 例如:在P2M系統(tǒng)中需要配置rabbitMQ的名稱,即可為:sysware.p2m.rabbitmq.username

? ? ? ? ? ? ? ? ? ? ?公共的配置即將有服務(wù)端portal錄入,規(guī)則為sysware.common開頭的key

2)? ? DB

? ? ? 服務(wù)端數(shù)據(jù)庫采用的mysql數(shù)據(jù),主要用來防止zookeeper服務(wù)出現(xiàn)異常等不確定因素導(dǎo)致數(shù)據(jù)丟失,所以在mysql數(shù)據(jù)中也存儲了一份作為備份,以備恢復(fù)數(shù)據(jù)。

3)? ?服務(wù)端 portal

? ? ? ?方便運(yùn)維人員進(jìn)行zookeeper上數(shù)據(jù)的管理,提供了服務(wù)端portal界面操作。

4)? ? client

? ? ? ? 提供與各個(gè)業(yè)務(wù)系統(tǒng)的配置中心客戶端,以jar的形式提供,各業(yè)務(wù)系統(tǒng)可以獲取配置中心數(shù)據(jù)。

三、sysware配置中心服務(wù)端使用

服務(wù)端提供了portal對于zk數(shù)據(jù)進(jìn)行管理。

?1) 登錄

2)首頁

3)數(shù)據(jù)列表

4)新增數(shù)據(jù)

5)修改,刪除

客戶端:

一、客戶端介紹

?配置中心客戶端是服務(wù)于各個(gè)應(yīng)用系統(tǒng)從而操作配置中心的配置屬性。

客戶端整體模型:

實(shí)現(xiàn)邏輯:

1) 采取數(shù)據(jù)加載到內(nèi)存方式解決高效獲取的問題,借助zookeeper的節(jié)點(diǎn)監(jiān)聽機(jī)制來實(shí)現(xiàn)實(shí)時(shí)感知。

2)新增配置,獲取配置,修改配置,?刪除配置邏輯圖

3) 各個(gè)應(yīng)用系統(tǒng)? 獲取配置過程? 詳細(xì)業(yè)務(wù) 邏輯圖

?

二、客戶端使用

配置中心客戶端是以jar的形式提供于各個(gè)應(yīng)用系統(tǒng)。

準(zhǔn)備工作

1)如果是非maven項(xiàng)目,需要將jar引入項(xiàng)目。

? ? ?sysware-config.client-1.0-SNAPSHOT.jar(這邊咋就限制文件大小9.77M呢,上傳不上去,jar 13M,需要jar直接聯(lián)系系統(tǒng)集成部楊曉輝)

2)?如果是maven項(xiàng)目,在pom中直接引入以下依賴,(目前還沒上傳到私服,后續(xù)完成)

<dependency>
<groupId>com.sysware</groupId>
<artifactId>sysware-config.client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

3)需要在應(yīng)用系統(tǒng)的classpath目錄下添加config.properties文件,里面需要配置應(yīng)用系統(tǒng)的唯一標(biāo)識。

配置的key為:sysware.appid? ? value為系統(tǒng)的唯一標(biāo)識。

例如:sysware.appid=p2m

4)需要在在之前的sysware.properties文件中配置zk的ip

例如:sysware.zookeeper.ip=127.0.0.1:2181

使用方式:

配置中心客戶端對外提供了增刪改查接口,具體使用如下:

接口名稱

返回值

接口描述

接口名稱

返回值

接口描述

String getValueByKey(String key) String獲取屬性:根據(jù)鍵key獲取值value;
void addValue(String key, String value) void新增屬性:key為配置的鍵,value為配置的值
void updateValueByKey(String key, String value) void修改屬性:key為配置的鍵,value為配置的值
void deleteValueByKey(String key) void刪除屬性:key為配置的鍵

具體使用demo:

/*
* 從配置中心客戶端獲取屬性信息
* 1.如果從配置中心獲取屬性不為空,則使用配置中心配置屬性。
* 2.如果配置中心中獲取不到屬性,則使用應(yīng)用系統(tǒng)配置的屬性,并且需要將應(yīng)用系統(tǒng)該屬性配置項(xiàng)推送至配置中心
*/
SyswareConfigClient scc = SyswareConfigClient.newInstance();
//獲取DRIVER_CLASS_NAME
//方法說明:獲取屬性value
String driverClassName = scc.getValueByKey(DBConfig.DRIVER_CLASS_NAME);
if(!SyswareUtil.isEmpty(driverClassName)){
props.setProperty(DBConfig.DRIVER_CLASS_NAME, driverClassName);
}else{
//方法說明:addValue("sysId","屬性key","屬性value")
scc.addValue(DBConfig.DRIVER_CLASS_NAME, props.getProperty(DBConfig.DRIVER_CLASS_NAME));
}

三、配置規(guī)則

建議:為了能夠區(qū)分各個(gè)業(yè)務(wù)系統(tǒng)的配置,各個(gè)業(yè)務(wù)系統(tǒng)自己配置的屬性文件中,建議規(guī)則為使用:sysware? ?+? ?點(diǎn)? +? ?業(yè)務(wù)系統(tǒng)名稱? + 點(diǎn) +? 服務(wù)名稱 +? ?點(diǎn) +key

? ? ? ? ? 例如:在P2M系統(tǒng)中需要配置rabbitMQ的名稱,即可為:sysware.p2m.rabbitmq.username

? ? ? ? ? ? ? ? ? ? ?公共的配置即將有服務(wù)端portal錄入,規(guī)則為sysware.common開頭的key, 例如:sysware.common.redis.ip

轉(zhuǎn)載于:https://my.oschina.net/u/3845850/blog/3001201

總結(jié)

以上是生活随笔為你收集整理的基于zookeeper实现系统配置中心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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