mycat源码解析
来源:互联网 发布:淘宝商品展示页面html 编辑:程序博客网 时间:2024/06/13 23:51
MycatStartup启动类
private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; private static final Logger LOGGER = LoggerFactory.getLogger(MycatStartup.class); public static void main(String[] args) { //use zk ? ZkConfig.getInstance().initZk();//初始化zk try { String home = SystemConfig.getHomePath(); if (home == null) { System.out.println(SystemConfig.SYS_HOME + " is not set."); System.exit(-1); } // init MycatServer server = MycatServer.getInstance(); server.beforeStart(); // startup server.startup();//启动server System.out.println("MyCAT Server startup successfully. see logs in logs/mycat.log"); } catch (Exception e) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); LOGGER.error(sdf.format(new Date()) + " startup error", e); System.exit(-1); } }
MycatServer服务初始化
读取配置文件、启动、启动心跳检测
private MycatServer() { //读取文件配置 this.config = new MycatConfig(); //定时线程池,单线程线程池,删除没有的动态类 scheduler = Executors.newSingleThreadScheduledExecutor(); //心跳调度独立出来,避免被其他任务影响 heartbeatScheduler = Executors.newSingleThreadScheduledExecutor(); //SQL记录器 this.sqlRecorder = new SQLRecorder(config.getSystem().getSqlRecordCount()); /** * 是否在线,MyCat manager中有命令控制 * | offline | Change MyCat status to OFF | * | online | Change MyCat status to ON | */ this.isOnline = new AtomicBoolean(true); //缓存服务初始化 cacheService = new CacheService(); //路由计算初始化 routerService = new RouteService(cacheService); // load datanode active index from properties dnIndexProperties = loadDnIndexProps(); try { //SQL解析器 sqlInterceptor = (SQLInterceptor) Class.forName( config.getSystem().getSqlInterceptor()).newInstance(); } catch (Exception e) { throw new RuntimeException(e); } //catlet加载器 catletClassLoader = new DynaClassLoader(SystemConfig.getHomePath() + File.separator + "catlet", config.getSystem().getCatletClassCheckSeconds()); //记录启动时间 this.startupTime = TimeUtil.currentTimeMillis(); if(isUseZkSwitch()) { String path= ZKUtils.getZKBasePath()+"lock/dnindex.lock"; dnindexLock = new InterProcessMutex(ZKUtils.getConnection(), path); } }
0 0
- MyCat源码解析(1)
- mycat源码解析
- 数据库中间件Mycat源码解析(一):初识Mycat
- Mycat源码篇 : Mycat sql解析模块分析
- 数据库中间件Mycat源码解析(三):Mycat的SQL解析和路由
- 数据库中间件Mycat源码解析(二):Mycat的网络通讯层
- 数据库中间件Mycat源码解析(四):Mycat的心跳管理
- Mycat源码篇 : 总览
- Mycat源码分析
- Mycat源码篇 : MyCat线程模型分析
- Mycat源码篇 : MyCat事务管理机制分析
- Mycat源码篇 : Mycat sql预处理功能分析
- 数据库中间件 MyCAT 源码解析 —— 分片结果合并(一)
- Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建
- Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建
- Mycat启动类源码解读
- 源码分析MyCat之SQL解析篇-----sql解析引擎druid之抽象语法树(mycat1.6)
- Mycat 路由转发解析学习
- JAVA设计模式之桥接模式
- C# 类的扩展
- spring 源码解析
- 封装 继承 多态
- Android中取消系统标题栏的几种方式
- mycat源码解析
- 关于ThinkPHP隐藏index.php
- ubuntu 安装有道词典
- java Commons工具類
- h264 Profile_IDC Level_IDC
- 基于WCF大型分布式系统的架构设计
- js中判断数据类型的方法总结
- SQL优化大全
- 每日学习情况打卡帖