配置guzz_app.properties

通常使用:

guzz_app.properties用來存儲系統各部分的配置信息,最多見的爲數據庫配置和service配置。
guzz_app.properties文件組織相似於mysql的配置文件,每一行爲1個配置項,以#開頭的視爲註釋。
[groupName] 用來標記一個配置組的開始,這個標記如下以及下一個 [xxx]以上的每一行,爲groupName的1條配置項,如:
1 [masterDB]
2 xxx=xxx
3 xxx=xxx
4 
5 [slaveDB]
6 ....
groupName組名稱,也叫配置(信息)組,組名稱能夠重複出現,用於爲一個配置組定義多組配置,最多見的狀況是配置多個 [slaveDB]定於多個從數據庫源。
下面是一個典型的配置實例:
 1 #guzz app config file.
 2 
 3 #master db
 4 [masterDB]
 5 guzz.identifer=blogMasterDB
 6 guzz.IP=localhost
 7 guzz.maxLoad=120
 8 driverClass=com.mysql.jdbc.Driver
 9 jdbcUrl=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true
10 user=root
11 password=root
12 acquireIncrement=10
13 idleConnectionTestPeriod=60
14 
15 [updateMasterDB]
16 guzz.identifer=incUpdateDB1
17 guzz.IP=localhost
18 guzz.maxLoad=20
19 driverClass=com.mysql.jdbc.Driver
20 jdbcUrl=jdbc:mysql://localhost:3306/guzzSlowUpdate?useUnicode=true&characterEncoding=UTF-8
21 user=slowupdate
22 password=slowupdate
23 acquireIncrement=10
24 idleConnectionTestPeriod=60
25 
26 [logMasterDB]
27 guzz.identifer=logUpdateDB1
28 guzz.IP=localhost
29 guzz.maxLoad=20
30 driverClass=com.mysql.jdbc.Driver
31 jdbcUrl=jdbc:mysql://localhost:3306/guzzLogDB?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true
32 user=loguser
33 password=loguser
34 acquireIncrement=10
35 idleConnectionTestPeriod=60
36 
37 [guzzSlowUpdate]
38 #max size of cached queue
39 queueSize=20480
40 batchSize=2048
41 
42 [guzzSlowUpdateServer]
43 #max size of cached queue
44 batchSize=50
45 pageSize=40
46 combinePageCount=10
47 
48 [guzzDBLogServiceClient]
49 #max size of cached queue
50 batchSize=2048
51 queueSize=20480
52 
53 #debug settings
54 [guzzDebug]
55 #runMode=debug/production
56 runMode=debug
57 #onError=halt/log/ignore
58 onError=halt
59 printSQL=false
60 printSQLParams=false
61 ignoreDemonThreadSQL=true
62 
63 
64 ############################### fundamental services #####################
65 #other services' configurations go here...

使用多個properties配置文件:

properties配置文件用guzz.xml的java

1 <config-server>
2         <server class="org.guzz.config.LocalFileConfigServer">
3                 <param name="resource" value="guzz_app.properties" />
4         </server>
5 </config-server>

指定。能夠一次性指定多個文件爲配置文件,也能夠指定某些文件爲可選的配置文件,guzz在啓動時所有加載併合併到一塊兒。mysql

可選的配置文件是指:若是文件存在則加載;若是文件不存在,則自動忽略。sql

默認的配置實現,容許提供最多4個properties常規配置文件和最多4個可選的配置文件。完整的配置方式以下:數據庫

 1 <config-server>
 2         <server class="org.guzz.config.LocalFileConfigServer">
 3                 <param name="resource" value="guzz_app.properties" />
 4                 <param name="resource1" value="guzz_app1.properties" />
 5                 <param name="resource2" value="guzz_app2.properties" />
 6                 <param name="resource3" value="guzz_app3.properties" />
 7                         
 8                 <param name="optionalResource" value="guzz_app4.properties" />
 9                 <param name="optionalResource1" value="guzz_app5.properties" />
10                 <param name="optionalResource2" value="guzz_app6.properties" />
11                 <param name="optionalResource3" value="guzz_app7.properties" />
12         </server>
13 </config-server>

使用properties文件列表方式配置:

這種方式,將實際須要加載的properties配置文件,用文件名列表的方式在一個properties文件中指定。服務器

用於在properties配置文件多變的場景下,保持guzz.xml文件的一致性。app

示例以下:ide

1 <config-server>
2         <server class="org.guzz.config.LocalFileConfigServer">
3                 <param name="resourceList" value="resources_list.properties" />
4         </server>
5 </config-server>

resources_list.properties內容示例以下:ui

1 #basic config files
2 guzz_app.properties
3 
4 #DBs
5 guzz_app_databases.properties
6 
7 #guzz task config file.
8 */root/optional_properties.properties

在這個配置中,guzz加載guzz_app.properties,guzz_app_databases.properties和/root/optional_properties.properties的配置項。spa

/root/optional_properties.properties 前面加*,表示此文件文件爲可選配置文件。若是存在,則加載;若是不存在,則自動忽略。debug

與配置管理服務器集成

配置管理服務器能夠完成對全部系統配置文件的統一管理,以及在配置發生改變時,對應用的推送通知。目前guzz尚未開發默認的獨立配置管理服務器,只提供從本地properties文件讀取配置的支持(就是上面介紹的)。
實現本身的配置管理,須要實現以下接口:
1 org.guzz.config.ConfigServer

而且在guzz.xml中配置爲本身的實現類:

<config-server>
        <server class="your config server's client implementation">
                <param name="param1" value="somevalue" />
                <param name="param2" value="somevalue2" />
    </server>
</config-server>
guzz在初始化時將會初始化此處定義的實現類,並將param參數以javabean方式注入到實現類中。name爲實現類屬性,value爲值。在ConfigServer實現類中,setXXX()方法的傳入參數類型容許爲java.lang.String或者org.guzz.io.Resource。使用org.guzz.io.Resource時,guzz會根據當前目錄狀況,根據配置的somevalue(如一個相對路徑的文件名)生成Resource資源(如文件IO流)。Resource使用完畢後不須要關閉。
默認LocalFileConfigServer中resouce參數的注入方法即爲:
1 public void setResource(org.guzz.io.Resource r) ;

在全部配置注入完成後,guzz調用 ConfigServer 的startup() 啓動。在guzz退出時,調用shutdown() 方法關閉。

相關文章
相關標籤/搜索