mycat

Mycat(Windows环境)

二次信任 提交于 2020-02-04 14:46:38
Mycat 是SQL集群中间件,基于阿里开源的Cobar产品而研发,继承了Cobar的稳定性、可靠性、优秀的架构和性能 首先在安装Mycat之前,需要安装JDK1.7以上,可以在cmd环境下输入 java -version 查看本地安装的java版本 安装JDK后,还需要安装Mysql(因为我本地环境安装的是Mysql,所以用Mysql做测试) 1. 下载Mycat 链接: https://pan.baidu.com/s/1L9TK3Vo2PTxS2WKdvjL4CQ 提取码: rrrp 2. 解压 下载成功后,解压到本地,目录结构如下: 3.配置 server.xml Mycat的配置文件,设置账号、参数等 schema.xml Mycat对应的物理数据库和数据库表的配置 rule.xml Mycat分片(分库分表)规则 .server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <system> <property name="defaultSqlParser">druidparser</property> <property name=

32_分库分表概述 配置mycat

被刻印的时光 ゝ 提交于 2020-02-04 13:42:44
版本:5.7.28 1.搭建mycat 分片服务器 数据库主机 192.168.4.54 使用db1库存储数据 数据库主机 192.168.4.55 使用db2库存储数据 主机 192.168.4.56 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456 主机 192.168.4.53 访问测试配置 1.1 在54(主机c1)和55(主机c2)上面分别创建db1和db2库 mysql> create database db1; //c1上面创建db1库 mysql> create database db2; //c2上面创建db2库 1.2 54 55 都授权 mysql> grant all on *.* to admin@"%" identified by "123456"; 1.3 修改数据库的配置文件(54 55) 注意:1代表不区分表名的大小写,0为区分大小写 ]# vim /etc/my.cnf [mysqld] lower_case_table_names=1 //表名忽略大小写 ]# systemctl restart mysqld 1.4 在56主机上面安装JDK ]# rpm -qa | grep -i jdk //安装自带的即可 ]# yum -y install java-1.8.0-openjdk 1.5

Mycat入门

自闭症网瘾萝莉.ら 提交于 2020-02-03 23:00:05
1. 安装 下载压缩包之后解压即可 2. 修改配置文件 2.1 配置文件解释 schema.xml:定义逻辑库、表、分片节点等内容。 rule.xml:定义分片规则。 server.xml:定义用户以及系统相关变量,如端口等。 2.2 修改配置文件 修改server.xml中user name为 mycat < user name = " mycat " > < property name = " password " > 123456 </ property > < property name = " schemas " > TESTDB </ property > </ user > 修改schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> < mycat: schema xmlns: mycat = " http://io.mycat/ " > < schema name = " TESTDB " checkSQLschema = " false " sqlMaxLimit = " 100 " dataNode = " dn1 " > </ schema > < dataNode name = " dn1 " dataHost = " host1 " database = "

原创 从0到1构建大前端应用(番外篇七):Mycat数据库中间件

自作多情 提交于 2020-02-01 01:18:29
为什么要用mycat? java与数据库紧耦合。 高访问量,高并发对数据库有压力。云服务器压力非常大 读写请求数据量不一致。 mycat相当于一个逻辑数据库,把真实数据库包起来了,这样的好处是显而易见的。其结构和nginx相似。 干什么 1.读写分离。 不用mycat也可以用java程序实现读写分离,但是需要判断哪些sql是查询,那些sql市update。紧耦合, 用mycat实现读写分离。双主双从,高可用性。 2、数据分片 垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表) 3.多数据源整合 来源: CSDN 作者: 丨许晨丨 链接: https://blog.csdn.net/Mrxuchen/article/details/103803871

Mycat简单介绍

江枫思渺然 提交于 2020-01-30 09:39:45
Mycat关键特性: 支持MySQL、oracle、SQLserver、DB2等DB的常见SQL语法 基于心跳的自动故障切换,支持读写分离,支持MySQL主从以及galera cluster集群 支持Galera for MySQL集群 支持分布式事务 强大的web命令行监控 支持前端作为mysql通用代理,后端JDBC方式支持oracle、DB2等 支持IP白名单 支持SQL黑名单,sql注入攻击拦截 支持库内分表 集群基于zookeeper管理,在线升级,扩容,智能优化,大数据处理 什么是Mycat: 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID,可以代替Mysql的加强版数据库 一个可以视为Mysql集群的企业级数据库,用来代替昂贵的Oracle集群 一个融合内存缓冲技术,Nosql技术,HDFS大数据的新型SQLserver 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 Mycat监控: 支持对Mycat、Mysql性能监控 支持对Mycat的JVM内存提供监控服务 支持对线程的监控 支持对操作系统的CPU、mem、磁盘、网络的监控。 Mycat架构: 来源: CSDN 作者: 梁欣伟 链接: https://blog.csdn.net/qq_42508901/article/details/104109326

Mycat 结果集处理源码剖析

心已入冬 提交于 2020-01-29 11:45:44
Mycat 结果集处理 源码剖析   一、读入响应数据包  Mycat 主要采用 Reactor 模式作为通信模型,而此通信模型获取客户端发送到服务端的请求数据包是通过在信道中注册 SelectionKey. OP_READ 读事件。Mycat 也不例外,用名为 NIOREACTOR- i -RW 的线程在双向通道中注册读事件,并接收、处理请求数据包。 package io . mycat . net ; public final class NIOReactor { private final class RW implements Runnable { public void run ( ) { for ( ; ; ) { . . . try { . . . // 注册 SelectionKey.OP_READ 读事件 register ( tSelector ) ; . . . if ( . . . ) { . . . } else { . . . for ( SelectionKey key : keys ) { AbstractConnection con = null ; try { // 获取当前的附加连接对象,如果没有附件,则为空 Object att = key . attachment ( ) ; if ( att != null ) { con = (

MyCat分库分表策略详解

为君一笑 提交于 2020-01-26 06:43:09
在我们的项目发展到一定阶段之后,随着数据量的增大,分库分表就变成了一件非常自然的事情。常见的分库分表方式有两种:客户端模式和服务器模式,这两种的典型代表有 sharding-jdbc 和 MyCat 。所谓的客户端模式是指在各个连接数据库的客户端中引用额外提供的jar包,以对连接数据库的过程进行封装,从而达到根据客户端的配置,将不同的请求分发到不同的数据库中的目的;而服务端模式是指,搭建一个数据库服务,这个服务只是架设在真实数据库集群前的一个代理层,其能够正常接收和解析客户端传入的SQL语句,然后根据其配置,将该SQL语句解析之后发送到各个真实的服务器执行,最终由代理层收集执行的结果并将该结果返回。服务器模式下,客户端所连接的服务完全就像是一个数据库服务,这种方式对于客户端的侵入性是非常小的。 作为服务端模式的典型代表, MyCat 不仅提供了丰富的分库分表策略,也提供了非常灵活的读写分离策略,并且其对客户端的侵入性是非常小的。本文主要讲解 MyCat 主要提供的分库分表策略,并且还会讲解 MyCat 如果自定义分库分表策略。 1. 配置格式介绍 在讲解 MyCat 分库分表策略之前,我们首先介绍一下其配置文件的格式。在 MyCat 中,配置文件主要有两个: schema.xml 和 rule.xml 。顾名思义,这两个配置文件分别指定了 MyCat

MyCat基本使用

时间秒杀一切 提交于 2020-01-25 02:11:13
文章目录 一、概述 Mycat主要能做什么 (1)数据库的读写分离 (2)数据库分库分表 二、环境搭建 1. 解压 2. 常用命令 三、配置文件详解 1. server.xml (1)sequnceHandlerType 2. schema.xml (1)dataHost配置详解 `balance` (dataHost 标签中)属性是指负载均衡类型,目前的取值有4种(推荐设置为1): `switchType`属性,用于指定主服务器发生故障后的切换类型 `heartbeat`标签 writeHost与readHost标签 3. rule.xml (1)分片枚举 (2)固定分片 hash 算法 (3)范围约定 (4)求模法 (5)按日期(天)分片 (6)取模范围约束 (7) 应用指定 (8)一致性 hash 四、读写分离 1. 配置server.xml 2. 配置schema.xml 五、分库分表 1. 水平 (1)配置server.xml (2)配置schema.xml (2)配置rule.xml 2. 垂直 (1)配置server.xml (2)配置schema.xml 六、Mycat全局序列号 1. 本地文件方式 2. 时间戳方式 3. 数据库方式 (1)原理 (2)创建表与函数 (3)配置在哪个节点上 八、java连接MyCat 一、概述 官方文档,是中文的: http:/

Mycat 安装启动

落花浮王杯 提交于 2020-01-23 08:25:22
文章目录 1、服务器规划 2、 下载、解压 3、确定Mysql 已发安装并启动成功 4、Mycat 配置 4.1、 修改配置文件server.xml 4.2、修改配置文件 schema.xml 4.3、 远程授权 5、启动 5.1 启动、停止、重启命令 6、测试 6.1、登录Mycat后台命令 6.2、8066 数据平台 6.3、9066 管理配置平台 1、服务器规划 编号 角色 IP 地址 说明 1 客户端 192.168.140.1 我使用的的电脑(win10) 2 Mycat 192.168.140.100 linux 3 mysql(写) 192.168.140.200 linux 4 mysql(读) 192.168.140.201 linux 服务器选择: Mycat 作为数据库中间件,不要和数据库部署在同一个机器上。 2、 下载、解压 1、下载 Mycat 的官网: http://www.mycat.io 本次选择的版本是 Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz 2、解压到 /usr/local/ 目录下 tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz -C /usr/local/ 3、 三个配置文件

Mycat占用mysql连接数过多

血红的双手。 提交于 2020-01-22 23:14:25
背景:mariadb,mycat中间件。 问题:DB连接数过多;开发使用程序使用连接池连mycat; DB待优化项: interactive_timeout,wait_timeout 都是8小时默认值。 mycat配置:100个分片库,和其他业务库。现在分片库用到16分片,后面尚未使用。 当前DB最大连接数:3000 mycat 版本:当前线上的mycat版本是1.5.8版本,推荐以后线上使用最稳定的 mycat1.6.5版本。 经DB和开发碰面了解 这两个timeout时间不能缩短,所以常规的优化手段不能使用: 正常DB连接数1000,数据库两个timeout为300--500,参数可以全局动态生效。 公司线上DB前段时间建总出现连接数过多问题,正常来说连接数1000,已经能够满足大部分需求。 正常手段无法使用的时候,那么就要找到DB为啥连接数过多。 1. 审计日志 DB上部署过审计日志,审计日志部署请移步: 审计日志部署 ,审计日志中可以查看到做坏事的坏小子是谁! 因为时间关系,未保存。但是从审计日志中发现大量访问连接sql就是'select 1' ,也是mycat连接mysql的连接。 且该链接连的是大量尚未使用的物理库。 至此审计日志只能判断到这里。 2. DB层面 mariadb物理库 information_schema 中processlist表记录连接相关信息,比如