配置文件位于项目的config文件夹下,本文对监控平台console的配置文件做一些讲解说明。
配置文件相关目录
配置文件在项目中的位置分布如下:
本文主要对database.xml 、 dbroute.properties 、 serviceconfig.xml 、 centerservice.xml 、 relax.xml
这几个文件进行说明。
database.xml
用于连接数据库的配置文件,例1:
|
|
配置文件说明:connector
连接的RefineConnectionManager
用于数据库精细化的配置,很多时候我们连接的数据库有很多,这时候我们就需要把这么多的数据库信息放到一些数据库表中,而不是在此配置文件里配置数据库。把数据库的相关连接信息放在数据库表中有利于集中管理。需要注意的是:如果connector
连接了RefineConnectionManager
,那么需要规定数据库名为base
,RefineConnectionManager
类规定的。数据库名base
还有一个作用,DAO类如果定义了数据库名base
,那么该类的sql语句就会在base
数据库中起作用。
当然,我们也可以不用配置connector
,例2:
|
|
是用于配置较少数据库的情况。
dbroute.properties
此文件用于group
连接到指定的数据库,例如:
|
|
serviceconfig.xml
该文件位于config/service下,需要加载进serviceconfig.xml
,该文件用于配置相关服务的信息,举例代码:
|
|
再来看看console.xml
|
|
代码说明:subsys="console"
表示子系统名称为console
,相当于group
组名。里面每个entity
包含一个服务名和相应的路径,@后面代表一个方法,该方法需要在该路径的类下定义。前端web和后端app通过服务名相连接。
centerservice.xml
该文件位于config/service下,文件定义了中心center
里面有哪些组group
,例如:
|
|
上面代码说明:中心center
名为:base
,中心base
下的组名为common
,console
。
relax.xml
该文件指明一个center
下所包含的实例instance
,例如:
|
|
上面代码说明:中心center
下包含一个实例console-node01-srv01
,该实例里面会绑定一个IP地址和一个端口127.0.0.1:18080
。
这几个配置文件之间的关系
上面的配置文件主要涉及到中心center、实例instance、组group、服务名servicename
,那么它们之间有什么关系呢?
来一张它们之间的关系图:
我们为什么要定义这些?
我们最终的目的是要调用服务,现在的架构是前端web和后端app分离。那么前端就要调用后端的服务。
一般来说,我们的后端服务器会部署很多instance
实例,而每个实例又有自己的归属center
,如果我们们要调用服务,那么该调用哪个instance
上的服务?我们来梳理下这几个配置文件的调用流程:
- 调用目标服务,加载配置文件
servicesonfig.xml
,获取该文件的服务name
和subsys="console"
,即group
为console
。 - 加载配置文件
centerservice.xml
,通过group
获取center="base"
。 - 加载配置文件
relax.xml
,通过center
获取instance
,这样就知道调用哪些instance
啦。
配图以作说明:
除了上面3个配置文件,还有database.xml
,dbroute.properties
。他们存在如下关系。
如果我们的数据足够多,会涉及到分库分表。比如存在cen1、cen2....
,我们有一个common
组,那么dbroute.properties
会将common
组指向一个库(如:cen1)。