`
gaojingsong
  • 浏览: 1183149 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Mycat1.6源码阅读之十大scheduler调度

阅读更多

1、scheduler 初始化过程

private MycatServer() { 

  //定时线程池,单线程线程池

  scheduler = Executors.newSingleThreadScheduledExecutor();

}

 

2、十大定时任务从巨无霸方法中剥离出来的部分代码

永久链接: http://gaojingsong.iteye.com/blog/2346941

//这个是个超级大方法,长达200多行,因此此段代码是个bad code,待优化

server.startup();


 源码如下:

public void startup() throws IOException {

SystemConfig system = config.getSystem();

//1、系统时间定时更新任务,类似Oracle系统中的SCN(system commit number/system change number)

scheduler.scheduleAtFixedRate(updateTime(), 0L, TIME_UPDATE_PERIOD,TimeUnit.MILLISECONDS);

//2、处理器定时检查任务

scheduler.scheduleAtFixedRate(processorCheck(), 0L, system.getProcessorCheckPeriod(),TimeUnit.MILLISECONDS);

//3、数据节点定时连接空闲超时检查任务

scheduler.scheduleAtFixedRate(dataNodeConHeartBeatCheck(dataNodeIldeCheckPeriod), 0L, dataNodeIldeCheckPeriod,TimeUnit.MILLISECONDS);

//4、 数据节点定时心跳任务

scheduler.scheduleAtFixedRate(dataNodeHeartbeat(), 0L, system.getDataNodeHeartbeatPeriod(),TimeUnit.MILLISECONDS);

//5、清理 reload @@config_all 后,老的 connection 连接

scheduler.scheduleAtFixedRate(dataSourceOldConsClear(), 0L, DEFAULT_OLD_CONNECTION_CLEAR_PERIOD, TimeUnit.MILLISECONDS);

//6、clear unused catlet

scheduler.schedule(catletClassClear(), 30000,TimeUnit.MILLISECONDS);

       

if(system.getCheckTableConsistency()==1) {

//7、定时检查不同分片表结构一致性

 scheduler.scheduleAtFixedRate(tableStructureCheck(), 0L, system.getCheckTableConsistencyPeriod(), TimeUnit.MILLISECONDS);

        }

if(system.getUseSqlStat()==1) {

//8、定时清理保存SqlStat中的数据

scheduler.scheduleAtFixedRate(recycleSqlStat(), 0L, DEFAULT_SQL_STAT_RECYCLE_PERIOD, TimeUnit.MILLISECONDS);

}

if(system.getUseGlobleTableCheck() == 1){

// 9、全局表一致性检测是否开启

scheduler.scheduleAtFixedRate(glableTableConsistencyCheck(), 0L, system.getGlableTableCheckPeriod(), TimeUnit.MILLISECONDS);

}

//10、定期清理结果集排行榜,控制拒绝策略

scheduler.scheduleAtFixedRate(resultSetMapClear(),0L,  system.getClearBigSqLResultSetMapMs(),TimeUnit.MILLISECONDS);

 

//XA Init recovery Log

performXARecoveryLog();

 

if(isUseZkSwitch()) {

//首次启动如果发现zk上dnindex为空,则将本地初始化上zk

}

}

  • 大小: 86.9 KB
0
0
分享到:
评论

相关推荐

    Mycat1.6源码

    《深入剖析Mycat 1.6源码》 Mycat是一款开源的分布式数据库中间件,它在Java平台上运行,旨在解决大数据分布式存储和处理的问题。Mycat 1.6版本是其一个重要的里程碑,它在前一版本的基础上进行了一系列的优化和...

    mycat1.6windows+linux.zip

    mycat1.6windows+linux.zip, 我就很不理解,为什么好多人上传的资料,下载都需要积分。0积分能咋地?官网能访问但是下载不了,后再巧合下在另外一个网站上下载的,我在这里给大家分享下。不需要积分也不需要花钱,...

    Mycat 1.6 稳定版-linux环境 gz包.7z

    《Mycat 1.6 稳定版在Linux环境下的部署与应用》 Mycat是一款开源的、基于Java开发的分布式数据库中间件,主要用于解决大数据量、高并发场景下的数据库处理问题。它实现了MySQL协议,可以作为MySQL的一个高性能、高...

    【Mycat1.6之操作SQLServer案例】

    【Mycat1.6与SQLServer操作案例详解】 Mycat是一款开源的分布式数据库中间件,它在大型分布式系统中扮演着数据库分片的角色,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.6是其一个重要版本,提供了更稳定、...

    mycat1.6jar包反编译的源码

    《深入解析mycat1.6源码:一次技术探索之旅》 Mycat,作为一款开源的分布式数据库中间件,广泛应用于大型分布式系统中,它实现了数据分片、读写分离、故障切换等功能,为高并发、大数据量的场景提供了优秀的解决...

    mycat1.6.7.5.zip

    在本压缩包"mycat1.6.7.5.zip"中,包含了在Linux环境下安装Mycat 1.6.7.5所需的所有关键组件,尤其是Java Development Kit (JDK) 1.8的安装文件,因为Mycat运行在Java平台上,所以JDK是其运行的前提。 首先,让我们...

    mycat-server 1.6 源码包 可直接运行

    《深入解析mycat-server 1.6:源码探索与实战指南》 Mycat-Server 1.6 是一个开源的分布式数据库中间件,它主要用于解决大数据环境下高并发、高性能的问题,尤其在分库分表场景下表现卓越。这款源码包的特点是可...

    Mycat-Server-1.6(源码)

    《深入解析Mycat-Server-1.6源码》 Mycat是开源的分布式数据库中间件,它主要用于解决大数据环境下数据分片、读写分离等问题,是Java开发的一款高性能、高可用的数据库集群管理工具。Mycat-Server-1.6版本的源码...

    mycat1.6.7.1.rar

    《Mycat数据库中间件详解——基于mycat1.6.7.1版本》 Mycat是一款开源的、基于Java开发的分布式数据库中间件,主要用于解决大数据量、高并发的分布式数据库架构问题。在本篇文章中,我们将深入探讨mycat1.6.7.1版本...

    Mycat1.6 安装步骤

    ### Mycat 1.6 安装步骤详解 #### 一、Mycat简介与应用场景 Mycat作为一款开源的数据库中间件,主要用于解决大型系统中的数据分库分表问题,通过它能够将大量的数据分散到多个物理数据库中,以此来提升系统的并发...

    Mycat 1.6权威指南.pdf和1.5的word版

    《Mycat 1.6权威指南》与《Mycat 1.5权威指南》是两本关于Mycat数据库中间件的重要参考资料,分别提供了详细的1.6和1.5版本的技术信息和实践指导。Mycat作为一款开源的分布式数据库系统,它解决了大数据量下的高并发...

    Mycat-1.6.7.3.zip

    Mycat-1.6.7.3是其的一个版本,通过下载并解压此压缩包,我们可以深入理解Mycat的配置与运行。 首先,解压"Mycat-1.6.7.3.zip"后,我们能看到其主要的文件结构。其中,`conf`目录包含了一系列配置文件,如`schema....

    mycat1.6.7.4

    【Mycat1.6.7.4:数据库中间件详解】 Mycat,作为一款强大的数据库中间件,它的出现是对阿里巴巴开源项目Cobar的一次革新与超越。Cobar是MySQL集群的一种解决方案,但随着时间的发展,社区发现它存在一些局限性,...

    mycat-1.6.7.6_BYMONTH.zip

    基于MyCat1.6.7.6正式版的源码修改的,支持subTables的按月分表正则配置 subTables=“ tableName_$202101-?” subTableWay="BYMONTH" rule="sharding-by-month" 表示从202101月份开始进行分表处理,?表示当前日期的...

    linux的Mycat安装包1.6.7.4版本

    本篇文章将详细介绍如何在Linux环境下安装Mycat的1.6.7.4版本。 首先,了解Mycat的基本概念。Mycat是基于Java开发的,它的主要功能包括数据分片、读写分离、故障切换以及SQL路由等。通过数据分片,Mycat可以将大...

    MySql 中间件 Mycat 1.6.7.5 - release- win.tar windows 程序

    在本压缩包中,我们获得了Mycat 1.6.7.5的Windows版本,这是一款专为Windows环境设计的程序,用于在MySQL数据库上构建高效的数据处理架构。 **Mycat核心特性:** 1. **读写分离**:Mycat可以自动将读操作路由到从...

    解决mycatJDBC8驱动连接Mycat1.6报错 Unknown system variable 'query_cache_size'

    标题中的问题涉及到的是在使用Mycat数据中间件时,尝试使用JDBC 8驱动连接到Mycat 1.6版本时遇到的一个错误:`Unknown system variable 'query_cache_size'`。这个问题出现的原因在于MySQL 8.0版本中移除了`query_...

    mycat1.6.5源码,分库分表,分布式

    【标题】"mycat1.6.5源码,分库分表,分布式"涉及到的是一个开源数据库中间件——Mycat,它主要用于解决大数据量下的高性能、高可用性问题,通过分库分表策略来分散数据库负载,实现数据的分布式处理。 【描述】中...

    mycat1.6jar包

    当mycat的jar包的版本过低时,替换这个可解决问题.

    Mycat1.6.7.3版本

    《Mycat 1.6.7.3版本:分布式数据库中间件的深度解析》 Mycat,作为一款开源的、基于Java开发的数据库中间件,被广泛应用于分布式数据库系统中,它能够有效地解决大数据量下的高并发访问问题。在Mycat 1.6.7.3这个...

Global site tag (gtag.js) - Google Analytics