public final class 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 ?
//使用单例模式加静态代码块加载/myid.properties配置文件
//如果配置文件中loadZk取值为true则会调用ZktoXmlMain类的loadZktoFile方法,
// 否则不使用ZK,这段代码小刘的注释写的很漂亮,值得学习和表扬
ZkConfig.getInstance().initZk();
try {
//检查是否设置SystemConfig中的SYS_HOME = "MYCAT_HOME"变量值
String home = SystemConfig.getHomePath();
if (home == null) {
System.out.println(SystemConfig.SYS_HOME + " is not set.");
System.exit(-1);
}
// init
//使用单例模式初始化配置文件为启动做准备:读取配置文件和启用scheduler调度器,
//其中配置文件的加载使用的是java中的w3c的DocumentBuilderFactory-->DocumentBuilder,
//这种代码比较底层。 dom sax dom4j的区别呢?此处没有用dom4j,估计是考虑到dtd验证问题
MycatServer server = MycatServer.getInstance();
//空方法啥也不干,以前可能用来初始化启动上述ZK,被注释掉代码 ZkConfig.instance().initZk();
server.beforeStart();
// startup
//这个是个超级大方法,长达200多行,因此此段代码是个bad code,待优化
server.startup();
System.out.println("MyCAT Server startup successfully. see logs in logs/mycat.log");
} catch (Exception e) {
//SimpleDateFormat类不是线程安全的,所以在多线程的环境下,往往会出现意想不到的结果。
//umberFormatException: multiple points
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
LOGGER.error(sdf.format(new Date()) + " startup error", e);
System.exit(-1);
}
}
}
启用ZK的配置文件
启用ZK的代码
XML文件解析
Sax基于事件的访问,应用程序通过事件处理函数实现对xml文档的访问.
因为事件触发是有时序性的,优点:1、无需将整个文档加载到内存中,所以内存消耗少.
2 、推模型允许注册多个contentHandler.
缺点:1、没有内置的文档导航支持.
2、不能随机访问xml文档.
3、不支持原地修改xml.
4、不支持名字空间作用域.
适合:对xml文档读取数据
小王老师曾说:SAX类似一个盲人去触摸一个漂亮女孩子一样,从头到脚只能触摸一次,即不可返回反复触摸,再摸就是非礼了。而DOM就可以反复了,因为它是整个加载到内存的,SAX是边读边解析的,解析完就丢弃
DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。也就是说,通过DOM树,应用程序可以对XML文档进行随机访问
优点:1、丰富的API集合,可以轻松导航.
2、 整个DOM树加载到内存,允许随机访问.
缺点:1、整个xml文档必须一次解析完.
2、整个DOM树都加载到内存中,内存要求高.
3、一般的DOM节点对于必须为所有节点创建对象的对象类型绑定不太理想.
适用:对xml文档修改数据
DOM4J
DOM4J有更复杂的api,所以dom4j比jdom有更大的灵活性.DOM4J性能最好,连Sun的JAXM也在用DOM4J.目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J.
优点:1、灵活性最高
2、易用性和功能强大、性能优异
缺点:1、复杂的api
2、移植性差
适用:自行选择
相关推荐
总结来说,Mycat 的主键自增代码涉及到分布式环境下的主键生成、配置、冲突解决和性能优化等多个方面。正确理解和配置这些参数,对于构建高可用、高性能的分布式数据库系统至关重要。在实际应用中,需要根据业务需求...
《MyCat测试报告:单机与多机集群的性能比较》 MyCat,作为一个流行的开源分布式数据库系统,常被用于解决大数据场景下的高并发问题。本测试报告旨在探究单台MyCat与多台MyCat集群在性能上的差异,并对比前端使用...
【标题】"mycat2 install-template(mycat2-install-template-1.20.zip)" 指的是MyCat 2的一个安装模板文件,版本号为1.20,存储在一个名为“mycat2-install-template-1.20.zip”的压缩包内。MyCat是开源的、基于...
Mycat源码分析Mycat源码分析Mycat源码分析Mycat源码分析Mycat源码分析
数据分片是Mycat的核心功能之一,它允许用户根据业务需求将数据分布到不同的数据库或表中。垂直拆分是将一个大型的数据库拆分成若干个小型的数据库,每个小型数据库只包含原数据库的一部分表,通常是为了将相关业务...
6. **扩展性**:Mycat设计时考虑了良好的扩展性,随着业务的增长,可以轻松添加新的数据节点,无需改动应用层代码。 在实际应用中,我们还需要关注Mycat的日志配置、性能监控、异常处理等方面,确保系统的稳定运行...
此外,还有一个"mycat.rar"文件,可能是更深入的Mycat配置文件或者源代码,用于进一步研究或调试。 【标签】"mycat.zip"强调了这个主题的关键点,即Mycat数据库中间件。 【文件名称列表】中的具体文件说明如下: ...
1. 安装部署:下载MyCat的压缩包,解压后进入bin目录,执行start.sh(Linux)或start.bat(Windows)启动MyCat服务器。 2. 配置分片规则:编辑conf/server.xml,定义数据分片策略和数据库连接信息。 3. 创建表结构...
5. 启动MYCAT服务:使用bin目录下的start.sh(Linux)或start.bat(Windows)脚本启动服务。 6. 监控与管理:通过Web管理界面或命令行工具检查MYCAT的运行状态,进行必要的调整。 总的来说,MYCAT是一个强大的...
### MyCat的安装与启动详解 #### 一、前言 Mycat是一款优秀的开源数据库中间件,它通过实现SQL解析、路由、分片等功能,为应用程序提供了一种透明的多数据库连接池管理机制,从而简化了应用层对底层数据库集群的...
【Mycat1.6与SQLServer操作案例详解】 Mycat是一款开源的分布式数据库中间件,它在大型分布式系统中扮演着数据库分片的角色,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.6是其一个重要版本,提供了更稳定、...
10. **社区支持**:Mycat2作为开源项目,有活跃的社区支持,用户可以通过官方论坛、GitHub等平台获取帮助、报告问题或贡献代码。 以上就是关于"mycat2基础安装包"的相关知识点,通过理解这些内容,用户可以更好地...
- 运行入口程序:`org.opencloudb.MycatStartup.java`,右键运行并设置 `MYCAT_HOME` 目录为当前工程所在目录(src/main)。 - 如果启动时出现 DirectBuffer 内存不足的错误,可以通过添加 JVM 参数 `XX:...
- 启动 mycat:启动 mycat 服务,测试连接和 SQL 路由。 6. **mycat 在实际项目中的应用** mycat 常用于电商、社交、金融等领域的大数据平台,如订单系统、用户信息管理、商品分类等,通过分库分表降低单表数据量...
2. 启动服务:运行jar包,启动mycat2服务器。命令行输入`java -jar mycat2-1.21-release-jar-with-dependencies.jar`。 3. 连接测试:通过MySQL客户端连接mycat2,验证服务是否正常运行,可以执行简单的SQL查询来...
在Eclipse中,你可以设置断点,通过Debug模式启动Mycat,以便于分析代码执行流程和问题定位。 此外,Mycat-Server-1.6使用Maven进行项目管理,Maven的生命周期可以帮助你构建、测试和打包项目。通过执行"Maven ...
【标题】"mycat2 install-template(mycat2-install-template-1.21.zip)" 指的是MyCat 2的一个安装模板文件,版本为1.21,通常包含了安装MyCat 2所需的所有配置文件和脚本,用于简化部署过程。 【描述】虽然描述...
- **源代码**:mycat-web项目的Java源码,包含了MyCat Web管理平台的前端和后端代码。 - **部署脚本**:用于部署mycat-web到服务器的脚本,可能包括启动、停止、更新等操作。 - **配置文件**:如mycat.properties,...
4. "Mycat-server-1.6.7.6-release-sources.jar":这是Mycat的源代码jar包,对于开发者来说,这是一个非常宝贵的资源,可以通过查看源代码了解Mycat的工作原理和实现细节。 安装和配置Mycat时,需要修改相应的配置...