本文档对DCache的各服务的配置进行了说明和示例。

ConfigServer服务配置

  1. #db_dcache_relation的数据库信息
  2. <Main>
  3. <DB>
  4. dbhost=
  5. dbpass=
  6. dbuser=
  7. dbname=db_dcache_relation
  8. charset=
  9. dbport=
  10. </DB>
  11. </Main>

#

KVCacheServer服务配置

  1. <Main>
  2. #模块名
  3. ModuleName=Test
  4. #coredump size
  5. CoreSizeLimit=-1
  6. #备份恢复操作日志的按天日志文件名后缀
  7. BackupDayLog=dumpAndRecover
  8. #向Router上报心跳的间隔(毫秒)
  9. RouterHeartbeatInterval=1000
  10. <Cache>
  11. #指定共享内存使用的key
  12. ShmKey=12345
  13. #内存的大小
  14. ShmSize=10M
  15. #平均数据size,用于初始化共享内存空间
  16. AvgDataSize=1
  17. #设置hash比率(设置chunk数据块/hash项比值)
  18. HashRadio=2
  19. #是否允许淘汰数据
  20. EnableErase=Y
  21. #每次淘汰数据的时间间隔(秒)
  22. EraseInterval=5
  23. #开始淘汰数据的比率(已用chunk/所有chunk数据块*100)
  24. EraseRadio=95
  25. #淘汰线程数量
  26. EraseThreadCount=2
  27. #每次淘汰数据记录限制
  28. MaxEraseCountOneTime=500
  29. #是否启动过期清除线程
  30. StartExpireThread=Y
  31. #是否清除后端数据库
  32. ExpireDb=Y
  33. #每次清除过期数据的时间间隔(秒)
  34. ExpireInterval=300
  35. #清除频率, 0 表示不限制
  36. ExpireSpeed=0
  37. #每次回写时间间隔(秒)
  38. SyncInterval=300
  39. #回写频率, 0 表示不限制
  40. SyncSpeed=0
  41. #回写脏数据的线程数
  42. SyncThreadNum=1
  43. #回写时间(秒),即回写多久以前的数据
  44. SyncTime=300
  45. #禁止回写时间段(例:0900-1000;1600-1700)
  46. SyncBlockTime=0000-0000
  47. #是否保存OnlyKey数据 Y/N
  48. SaveOnlyKey=Y
  49. #主机自动降级超时时间(秒),即30s无心跳则自动降级
  50. DowngradeTimeout=30
  51. #内存块个数
  52. JmemNum=10
  53. #是否统计冷数据比例
  54. coldDataCalEnable=Y
  55. #冷数据统计周期(天)
  56. coldDataCalCycle=7
  57. #后端数据库的key长度限制
  58. MaxKeyLengthInDB=767
  59. </Cache>
  60. <Log>
  61. #回写db的按天日志文件名后缀
  62. DbDayLog=db
  63. </Log>
  64. <DbAccess>
  65. #是否存在DB,Y/N
  66. DBFlag=Y
  67. #DbAccess的obj名称
  68. ObjName=DCache.TestDbAccessServer.DbAccessObj
  69. #当Cache中没有数据时,是否从DB或文件查询, Y/N
  70. ReadDbFlag=Y
  71. </DbAccess>
  72. <BinLog>
  73. #binlog日志文件名后缀
  74. LogFile=binlog
  75. #是否记录binlog
  76. Record=Y
  77. #是否记录key binlog
  78. KeyRecord=N
  79. #每次同步binlog的行数
  80. MaxLine=10000
  81. #同步binlog是否开启压缩
  82. SyncCompress=Y
  83. #采用gzip压缩格式
  84. IsGzip=Y
  85. #主备同步使用key binlog
  86. KeySyncMode=N
  87. #备机同步binlog缓存buffer的szie
  88. BuffSize=10
  89. #保存synctime文件的间隔(秒)
  90. SaveSyncTimeInterval=10
  91. #active binlog产生的周期(秒)
  92. HeartbeatInterval=600
  93. </BinLog>
  94. <Router>
  95. #RouterServer的obj名称
  96. ObjName=DCache.TestRouterServer.RouterObj
  97. #路由分页大小
  98. PageSize=10000
  99. #保存在本地的路由表文件名
  100. RouteFile=Route.dat
  101. #同步路由的时间间隔(秒)
  102. SyncInterval=1
  103. </Router>
  104. </Main>

MKVCacheServer服务配置

  1. <Main>
  2. #模块名
  3. ModuleName=Test
  4. #coredump size
  5. CoreSizeLimit=-1
  6. #限制按主key查询最大数据条数
  7. MKeyMaxBlockCount=20000
  8. #备份恢复操作日志的按天日志文件名后缀
  9. BackupDayLog=dumpAndRecover
  10. #向Router上报心跳的间隔(毫秒)
  11. RouterHeartbeatInterval=1000
  12. <Cache>
  13. #指定共享内存使用的key
  14. ShmKey=692815670
  15. #内存的大小
  16. ShmSize=10M
  17. #平均数据size,用于初始化共享内存空间
  18. AvgDataSize=1
  19. #设置hash比率(设置chunk数据块/hash项比值)
  20. HashRadio=2
  21. #元素个数与主key个数的比率
  22. MKHashRadio=1
  23. #存储数据结构类型,hash/set/zset/list
  24. MainKeyType=hash
  25. #是否启动删除线程
  26. StartDeleteThread=Y
  27. #delete线程操作时间间隔(秒)
  28. DeleteInterval=300
  29. #delete线程删除速度,0表示不限速
  30. DeleteSpeed=0
  31. #是否允许淘汰数据
  32. EnableErase=Y
  33. #每次淘汰数据的时间间隔(秒)
  34. EraseInterval=5
  35. #开始淘汰数据的比率(已用chunk/所有chunk数据块*100)
  36. EraseRadio=95
  37. #淘汰线程数量
  38. EraseThreadCount=2
  39. #每次淘汰数据记录限制
  40. MaxEraseCountOneTime=500
  41. #是否启动过期清除线程
  42. StartExpireThread=Y
  43. #是否清除后端数据库
  44. ExpireDb=N
  45. #每次清除过期数据的时间间隔(秒)
  46. ExpireInterval=3600
  47. #清除频率, 0 表示不限制
  48. ExpireSpeed=0
  49. #每次回写时间间隔(秒)
  50. SyncInterval=300
  51. #回写频率, 0 表示不限制
  52. SyncSpeed=0
  53. #回写脏数据的线程数
  54. SyncThreadNum=1
  55. #回写时间(秒),即回写多久以前的数据
  56. SyncTime=300
  57. #屏蔽回写时间段(例:0900-1000;1600-1700)
  58. SyncBlockTime=0000-0000
  59. #解除屏蔽回写的脏数据比率
  60. SyncUNBlockPercent=60
  61. #insert一个数据是在主key链的头部还是尾部,Y/N -- 头/尾
  62. InsertOrder=N
  63. #数据更新时,同时更新主key链下的顺序
  64. UpdateOrder=N
  65. #主key最大记录条数限制,只在无源cache时有效,超过最大记录限制将删除旧的数据,0表示无限制
  66. MkeyMaxDataCount=0
  67. #是否保存OnlyKey数据 Y/N
  68. SaveOnlyKey=Y
  69. #从DB中查回的数据,写入cache时按照OrderItem指定的字段排序插入主key链
  70. OrderItem=
  71. #按照OrderItem排序时,是否采用降序
  72. OrderDesc=Y
  73. #内存块个数
  74. JmemNum=2
  75. #主机自动降级超时时间(秒),即30s无心跳则自动降级
  76. DowngradeTimeout=30
  77. #是否统计冷数据比例
  78. coldDataCalEnable=Y
  79. #冷数据统计周期(天)
  80. coldDataCalCycle=7
  81. #后端数据库的key长度限制
  82. MaxKeyLengthInDB=767
  83. #数据迁移时传输数据进行压缩
  84. transferCompress=Y
  85. </Cache>
  86. <Log>
  87. #回写db的按天日志文件名后缀
  88. DbDayLog=db
  89. </Log>
  90. <DbAccess>
  91. #是否存在DB,Y/N
  92. DBFlag=Y
  93. #DbAccess的obj名称
  94. ObjName=DCache.TestDbAccessServer.DbAccessObj
  95. #当Cache中没有数据时,是否从DB或文件查询, Y/N
  96. ReadDbFlag=Y
  97. </DbAccess>
  98. <BinLog>
  99. #binlog日志文件名后缀
  100. LogFile=binlog
  101. #每次同步binlog的行数
  102. MaxLine=10000
  103. #是否记录binlog
  104. Record=Y
  105. #是否记录key binlog
  106. KeyRecord=N
  107. #主备同步使用key binlog
  108. KeySyncMode=N
  109. #同步binlog是否开启压缩
  110. SyncCompress=Y
  111. #采用gzip压缩格式
  112. IsGzip=Y
  113. #备机同步binlog缓存buffer的szie
  114. BuffSize=10
  115. #保存synctime文件的间隔(秒)
  116. SaveSyncTimeInterval=10
  117. #active binlog产生的周期(秒)
  118. HeartbeatInterval=600
  119. </BinLog>
  120. #用户字段信息,模块接入时自动生成
  121. <Record>
  122. </Record>
  123. <Router>
  124. #RouterServer的obj名称
  125. ObjName=DCache.TestRouterServer.RouterObj
  126. #路由分页大小
  127. PageSize=10000
  128. #保存在本地的路由表文件名
  129. RouteFile=Route.dat
  130. #同步路由的时间间隔(秒)
  131. SyncInterval=1
  132. </Router>
  133. </Main>

Router服务配置

  1. <Main>
  2. # 应用名称
  3. AppName=GuochengHelloWorld
  4. # 数据库配置重新装载最小间隔时间
  5. DbReloadTime=300000
  6. # 管理接口的Obj
  7. AdminRegObj=tars.tarsregistry.AdminRegObj
  8. <ETCD>
  9. # 是否开启ETCD为Router集群(Router集群需要利用ETCD来做选举)
  10. enable=N
  11. # 所有ETCD机器的地址,以分号分割,如x.x.x.x:2379;x.x.x.x:2379;x.x.x.x:2379
  12. host=
  13. # ETCD通信请求的超时时间(秒)
  14. RequestTimeout=3
  15. # Router主机心跳的维持时间(秒)
  16. EtcdHbTTL=60
  17. </ETCD>
  18. <Transfer>
  19. # 清理代理的最近未访问时间
  20. ProxyMaxSilentTime=1800
  21. # 清理代理的间隔时间
  22. ClearProxyInterval=1800
  23. # 轮询迁移数据库的时间
  24. TransferInterval=3
  25. # 轮询线程数
  26. TimerThreadSize=20
  27. # 每个模块最小迁移线程数(没有这项配置的话,默认是5个线程)
  28. MinTransferThreadEachModule=5
  29. # 等待页迁移的超时时间(毫秒)
  30. TransferTimeOut=3000
  31. # 迁移时隔多少页整理一下数据库记录
  32. TransferDefragDbInterval=50
  33. # 重新执行迁移指令的时间间隔(秒)
  34. RetryTransferInterval=1
  35. # 迁移失败时的最大重试次数
  36. RetryTransferMaxTimes=3
  37. # 一次迁移页数
  38. TransferPagesOnce=5
  39. # 每个组分配的最小迁移线程数
  40. MinTransferThreadEachGroup=5
  41. # 每个组分配的最大迁移线程数
  42. MaxTransferThreadEachGroup=8
  43. </Transfer>
  44. <Switch>
  45. # 自动切换超时的检测间隔(秒)
  46. SwitchCheckInterval= 10
  47. # 自动切换的超时时间(秒)
  48. SwitchTimeOut=60
  49. # 自动切换执行的线程数(默认1个)
  50. SwitchThreadSize=50
  51. # 备机不可读的超时时间(秒)
  52. SlaveTimeOut=60
  53. # 主备切换时,主备机binlog差异的阈值(毫秒)
  54. SwitchBinLogDiffLimit=300
  55. # 一天当中主备切换的最大次数
  56. SwitchMaxTimes=3
  57. # 主备切换时等待主机降级的时间(秒)
  58. DowngradeTimeout=30
  59. </Switch>
  60. <DB>
  61. <conn>
  62. charset=utf8
  63. dbname=testInstall
  64. dbhost=
  65. dbpass=
  66. dbport=
  67. dbuser=
  68. </conn>
  69. <relation>
  70. charset=utf8
  71. dbname=db_dcache_relation
  72. dbhost=
  73. dbpass=
  74. dbport=
  75. dbuser=
  76. </relation>
  77. <DB>
  78. </Main>

PropertyServer服务配置

  1. <Main>
  2. <DB>
  3. Sql=CREATE TABLE `${TABLE}` (`stattime` timestamp NOT NULL default CURRENT_TIMESTAMP,`f_date` date NOT NULL default '1970-01-01',`f_tflag` varchar(8) NOT NULL default '',`app_name` varchar(20) default NULL,`module_name` varchar(50) default NULL,`group_name` varchar(100) default NULL,`idc_area` varchar(10) default NULL,`server_status` varchar(10) default NULL,`master_name` varchar(128) NOT NULL default '',`master_ip` varchar(16) default NULL,`set_name` varchar(15) NOT NULL default '',`set_area` varchar(15) NOT NULL default '',`set_id` varchar(15) NOT NULL default '',`value1` varchar(255) default NULL,`value2` varchar(255) default NULL,`value3` varchar(255) default NULL,`value4` varchar(255) default NULL,`value5` varchar(255) default NULL,`value6` varchar(255) default NULL,`value7` varchar(255) default NULL,`value8` varchar(255) default NULL,`value9` varchar(255) default NULL,`value10` varchar(255) default NULL,`value11` varchar(255) default NULL,`value12` varchar(255) default NULL,`value13` varchar(255) default NULL,`value14` varchar(255) default NULL,`value15` varchar(255) default NULL,`value16` varchar(255) default NULL,`value17` varchar(255) default NULL,`value18` varchar(255) default NULL,`value19` varchar(255) default NULL,`value20` varchar(255) default NULL,`value21` varchar(255) default NULL,`value22` varchar(255) default NULL,`value23` varchar(255) default NULL,`value24` varchar(255) default NULL,`value25` varchar(255) default NULL,`value26` varchar(255) default NULL,`value27` varchar(255) default NULL,`value28` varchar(255) default NULL,`value29` varchar(255) default NULL,`value30` varchar(255) default NULL,`value31` varchar(255) default NULL,`value32` varchar(255) default NULL,`value33` varchar(255) default NULL,`value34` varchar(255) default NULL,`value35` varchar(255) default NULL,KEY(`f_date`,`f_tflag`,`master_name`,`master_ip`),KEY `IDX_MASTER_NAME` (`master_name`),KEY `IDX_MASTER_IP` (`master_ip`),KEY `IDX_TIME` (`stattime`),KEY `IDX_F_DATE` (`f_date`))ENGINE\=MyISAM
  4. TbNamePre=t_property_realtime
  5. AppName=dcache_idc5min_147
  6. <property>
  7. dbhost=
  8. dbname=taf_property_147
  9. dbuser=
  10. dbpass=
  11. dbport=
  12. charset=gbk
  13. </property>
  14. <relation>
  15. charset=gbk
  16. dbname=db_dcache_relation
  17. dbhost=
  18. dbpass=
  19. dbport=
  20. dbuser=
  21. </relation>
  22. </DB>
  23. <HashMap>
  24. InsertInterval=1
  25. </HashMap>
  26. <NameMap>
  27. BakCenterError = property1
  28. BinLogErr = property2
  29. BinLogSyn = property3
  30. CacheError = property4
  31. Chunks/OnceElement = property5
  32. BackUpObjAdapter.connectRate = property6
  33. BackUpObjAdapter.queue = property7
  34. BinLogObjAdapter.connectRate = property8
  35. BinLogObjAdapter.queue = property9
  36. CacheObjAdapter.connectRate = property10
  37. CacheObjAdapter.queue = property11
  38. RouterClientObjAdapter.connectRate = property12
  39. RouterClientObjAdapter.queue = property13
  40. WCacheObjAdapter.connectRate = property14
  41. WCacheObjAdapter.queue = property15
  42. asyncqueue = property16
  43. memsize = property17
  44. DataMemUsedRatio = property18
  45. DbError = property19
  46. DbException = property20
  47. DirtyNum = property21
  48. DirtyRatio = property22
  49. ElementCount = property23
  50. Exception = property24
  51. HitCount = property25
  52. MemSize = property26
  53. getBatchCount = property27
  54. setBatchCount = property28
  55. MKMemUsedRatio = property29
  56. eraseCount = property30
  57. eraseCountUnexpire = property31
  58. asyncqueue0 = property32
  59. Jmem0DataUsedRatio = property33
  60. Jmem1DataUsedRatio = property34
  61. ColdDataRatio = property35
  62. expireCount = property36
  63. OnlyKeyCount = property37
  64. BigChunk = property38
  65. </NameMap>
  66. </Main>

ProxyServer服务配置

  1. <Main>
  2. PrintLogModule = ModuleName1|ModuleName2 #需要打印日志的模块
  3. PrintLogType = r|w #指定打印的日志类型,分三种:仅读打印,仅写打印,读写都打印
  4. IdcArea = sz #指明服务部署的机器属于那个地区idc
  5. SynRouterTableInterval = 1 #同步路由表的时间间隔(秒)
  6. SynRouterTableFactoryInterval = 5 #同步模块变化(模块新增或者下线)的时间间隔(秒)
  7. BaseLocalRouterFile = Router.dat #保存在本地的路由表文件名前缀
  8. RouterTableMaxUpdateFrequency = 3 #模块路由表每秒钟的最大更新频率
  9. RouterObj = DCache.RouterServer.RouterObj #RouterServer的obj名称
  10. </Main>

OptServer服务配置

  1. <Main>
  2. # admin registry obj
  3. AdminRegObj = tars.tarsAdminRegistry.AdminRegObj
  4. <DB>
  5. <tars>
  6. charset = utf8
  7. dbname = db_tars
  8. dbhost =
  9. dbport =
  10. dbuser =
  11. dbpass =
  12. </tars>
  13. <relation>
  14. charset = utf8
  15. dbname = db_dcache_relation
  16. dbhost =
  17. dbport =
  18. dbuser =
  19. dbpass =
  20. </relation>
  21. </DB>
  22. # 创建路由数据库的用户名和密码
  23. <CreateRouterDb>
  24. dbuser =
  25. dbpass =
  26. </CreateRouterDb>
  27. <Release>
  28. # 发布服务线程数
  29. ThreadCount = 5
  30. </Release>
  31. <Uninstall>
  32. # 通知node下线服务超时时间(秒)
  33. Timeout = 20
  34. # 下线服务备份目录
  35. BakPath = /data/dcacheuninstall/
  36. # 下线服务线程数
  37. ThreadCount = 2
  38. </Uninstall>
  39. </Main>