Skip to content

配置guzz_app.properties

luocaihua edited this page Apr 29, 2015 · 1 revision

一般使用:

guzz_app.properties用来存储系统各部分的配置信息,最常见的为数据库配置和service配置。 guzz_app.properties文件组织类似于mysql的配置文件,每一行为1个配置项,以#开头的视为注释。 [groupName] 用来标记一个配置组的开始,这个标记以下以及下一个[xxx]以上的每一行,为groupName的1条配置项,如:
[masterDB]
xxx=xxx
xxx=xxx

[slaveDB] ....

groupName组名称,也叫配置(信息)组,组名称可以重复出现,用于为一个配置组定义多组配置,最常见的情况是配置多个[slaveDB]定于多个从数据库源。 下面是一个典型的配置实例:
#guzz app config file.

#master db
[masterDB]
guzz.identifer=blogMasterDB
guzz.IP=localhost
guzz.maxLoad=120
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true
user=root
password=root
acquireIncrement=10
idleConnectionTestPeriod=60

[updateMasterDB]
guzz.identifer=incUpdateDB1
guzz.IP=localhost
guzz.maxLoad=20
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/guzzSlowUpdate?useUnicode=true&characterEncoding=UTF-8
user=slowupdate
password=slowupdate
acquireIncrement=10
idleConnectionTestPeriod=60

[logMasterDB]
guzz.identifer=logUpdateDB1
guzz.IP=localhost
guzz.maxLoad=20
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/guzzLogDB?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true
user=loguser
password=loguser
acquireIncrement=10
idleConnectionTestPeriod=60

[guzzSlowUpdate]
#max size of cached queue
queueSize=20480
batchSize=2048

[guzzSlowUpdateServer]
#max size of cached queue
batchSize=50
pageSize=40
combinePageCount=10

[guzzDBLogServiceClient]
#max size of cached queue
batchSize=2048
queueSize=20480

#debug settings
[guzzDebug]
#runMode=debug/production
runMode=debug
#onError=halt/log/ignore
onError=halt
printSQL=false
printSQLParams=false
ignoreDemonThreadSQL=true


############################### fundamental services #####################
#other services' configurations go here...

使用多个properties配置文件:

properties配置文件用guzz.xml的

<config-server>
&lt;server class=&quot;org.guzz.config.LocalFileConfigServer&quot;&gt;
	&lt;param name=&quot;resource&quot; value=&quot;guzz_app.properties&quot; /&gt;
&lt;/server&gt;

</config-server>

指定。可以一次性指定多个文件为配置文件,也可以指定某些文件为可选的配置文件,guzz在启动时全部加载并合并到一起。

可选的配置文件是指:如果文件存在则加载;如果文件不存在,则自动忽略。

默认的配置实现,允许提供最多4个properties常规配置文件和最多4个可选的配置文件。完整的配置方式如下:

<config-server>
<server class="org.guzz.config.LocalFileConfigServer">
<param name="resource" value="guzz_app.properties" />
<param name="resource1" value="guzz_app1.properties" />
<param name="resource2" value="guzz_app2.properties" />
<param name="resource3" value="guzz_app3.properties" />
	&lt;param name=&quot;optionalResource&quot; value=&quot;guzz_app4.properties&quot; /&gt;
	&lt;param name=&quot;optionalResource1&quot; value=&quot;guzz_app5.properties&quot; /&gt;
	&lt;param name=&quot;optionalResource2&quot; value=&quot;guzz_app6.properties&quot; /&gt;
	&lt;param name=&quot;optionalResource3&quot; value=&quot;guzz_app7.properties&quot; /&gt;
&lt;/server&gt;

</config-server>

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

这种方式,将实际需要加载的properties配置文件,用文件名列表的方式在一个properties文件中指定。

用于在properties配置文件多变的场景下,保持guzz.xml文件的一致性。

示例如下:

<config-server>
<server class="org.guzz.config.LocalFileConfigServer">
<param name="resourceList" value="resources_list.properties" />
</server>
</config-server>

resources_list.properties内容示例如下:

#basic config files
guzz_app.properties

#DBs guzz_app_databases.properties

#guzz task config file. /root/optional_properties.properties

在这个配置中,guzz加载guzz_app.properties,guzz_app_databases.properties和/root/optional_properties.properties的配置项。

/root/optional_properties.properties 前面加,表示此文件文件为可选配置文件。如果存在,则加载;如果不存在,则自动忽略。

与配置管理服务器集成

配置管理服务器可以完成对所有系统配置文件的统一管理,以及在配置发生改变时,对应用的推送通知。目前guzz还没有开发默认的独立配置管理服务器,只提供从本地properties文件读取配置的支持(就是上面介绍的)。 实现自己的配置管理,需要实现如下接口:
 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参数的注入方法即为:

public void setResource(org.guzz.io.Resource r) ;
在所有配置注入完成后,guzz调用 ConfigServer 的startup() 启动。在guzz退出时,调用shutdown() 方法关闭。