1、重构代码,改用quartz做线程调度,实现HA

2、多个库的 向同一个库的表 同步数据 在同一个线程执行,保证不会造成死锁的情况,同时不会因为一个表同步事件过长而影响同一个库的其它表同步
3、部分特殊表通过 拦截器的方式 实现同步,如detection_set_info,meta_data。拦截器信息已配置到
table_sync_info 表中
4、重新整理nms 分库与主库 初始化语句及 同步配置表,初始化时
node_table.sync_status,event_record_library.db_id 的默认值需要修改为所在库的
id,id保存在sync_db_info 中,确保所有同步库 sync_db_info 表信息一致
This commit is contained in:
fangshunjian
2019-01-12 22:21:30 +06:00
parent af4f0910ba
commit c88b984af2
30 changed files with 17209 additions and 33 deletions

View File

@@ -1,7 +1,7 @@
#\u4e3b\u5e93\u540c\u6b65\u5206\u5e93\u6570\u636e\u7ebf\u7a0b\u65f6\u95f4\u5dee
syncMaterToSlaveTime=30000
syncMaterToSlaveTime=10
#\u4e3b\u5e93\u540c\u6b65\u5206\u5e93\u6570\u636e\u7ebf\u7a0b\u65f6\u95f4\u5dee
syncSlaveToMaterTime=60000
syncSlaveToMaterTime=15
#从库向主库同步的线程池数量
slave.to.master.pool.num=3
#主库向从库同步的线程池数量

View File

@@ -1,10 +1,10 @@
log4j.rootLogger=DEBUG, stdout, file
log4j.rootLogger=INFO, stdout, file
#log4j.rootLogger=ERROR, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
log4j.appender.stdout.layout.ConversionPattern=%d %p (%F:%L) [%t] - <%m>%n
log4j.logger.com.nms=debug
# Output to the File
#log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'

View File

@@ -0,0 +1,28 @@
#################### quartz 相关配置文件 #########################
#Main Scheduler Settings
org.quartz.scheduler.instanceName=NMSSync
org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer=true
org.quartz.scheduler.skipUpdateCheck=true
org.quartz.scheduler.batchTriggerAcquisitionMaxCount=100
org.quartz.threadPool.threadCount=10
#Configure JDBC-JobStoreTX
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.acquireTriggersWithinLock=true
org.quartz.jobStore.clusterCheckinInterval = 30000
org.quartz.jobStore.dataSource=qzDS
#============================================================================
# Configure Datasources
#============================================================================
#JDBC驱动
org.quartz.dataSource.qzDS.driver=com.mysql.jdbc.Driver
#在程序里赋值
#org.quartz.dataSource.qzDS.URL=jdbc:mysql://localhost:3306/quartz
#org.quartz.dataSource.qzDS.user=root
#org.quartz.dataSource.qzDS.password=christmas258@