mycat

Mycat--概述

戏子无情 提交于 2019-11-29 07:01:05
www宗旨 what 是什么    1、数据库集群。   2、解决大数据的性能问题。   3、分库分表。 how 怎么用    1、逻辑图               MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法       1.Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。       2.Table:逻辑表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。       3.DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上       4.DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上       5、分片规则:前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难    2、配置图               --server.xml:是Mycat服务器参数调整和用户授权的配置文件。    

初识 mycat

六月ゝ 毕业季﹏ 提交于 2019-11-28 22:20:11
【1】mycat的前世今生: 如果我有一个 32 核心的服务器,我就可以实现 1 个亿的数据分片,我有 32 核心的服务器么?没有,所以我至今无法实现 1 个亿的数据分片。—— Mycat ’ s Plan 1.0 如果我们有 10 台物理机,我们就可以实现 1000 亿的数据分片,我们有 10 台物理机么?没有,所以, Mycat 至今没有机会验证 1000 亿大数据的支撑能力—— Mycat ’ s Plan 2.0 来源: https://www.cnblogs.com/xiaofanblog/p/11429902.html

电商系统部署 MyCat & Nginx

跟風遠走 提交于 2019-11-28 21:49:13
1.开源数据库中间件-MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如果使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。 1.1 MyCat简介 Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。 Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。 Mycat

MyCat分库分表策略详解

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

《MyCat分库分表策略详解》

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

mariadb做读写分离

半腔热情 提交于 2019-11-28 14:54:48
原文引用 大专栏 https://www.dazhuanlan.com/2019/08/26/5d6335b52c369/ 上一次文章我在centos7上安装了mariadb并开启了主从复制模式,这一篇打算利用mycat做读写分离 mycat现在可以相称像是nginx一样的反向代理,他可以不暴露数据库的ip 环境: IP地址 作用 192.168.3.137 mycat服务器,主数据库 192.168.3.136 从数据库 安装mycat 打开mycat 官网 ,选择版本下载,我这里是1.6.6 将tar包解压到centos下的/usr/local/下 添加环境变量 vi /etc/profile export MYCAT_HOME=/usr/local/mycat # 退出 source /etc/profile #使之生效 cd /usr/local/mycat/bin ./mycat start #启动 ./mycat status #查看是否启动 一般没什么问题 配置环境 首先备份一下两个重要文档,如果弄坏了还可以还原 cd /usr/local/mycat/conf cp ./server.xml ./server.xml.bak cp ./schema.xml ./schema.xml.bak 配置用户供远程登陆 server.xml vi /usr/local

搭建MySql的读写分离

我与影子孤独终老i 提交于 2019-11-28 14:47:34
1.创建一台新的服务器,关闭防火墙 2.解压安装JDK (MyCat依赖JDK环境) 3.解压安装MyCat 4.配置JDK和MyCat的环境变量 5.修改mycat/conf/server.xml 6.启动MyCat服务 mycat start 来源: https://www.cnblogs.com/ruirui8023/p/11410514.html

MyCat 读写分离,负载均衡

一个人想着一个人 提交于 2019-11-28 01:40:58
docker mysql 主从复制 配合Spring 事务 注意事项 配置好JRE,安装好MYCAT 在mysql主库创建表,会同步到从库 CREATE TABLE `user` ( `id` int(11) NOT NULL, `user` varchar(255) NOT NULL COMMENT '名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; mycat schema.xml balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力 switchType='-1'意味着当主挂掉的时候,不进行自动切换,即hostS1和hostS2并不会被提升为主,仍只提供读的功能。 <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="slavetest" checkSQLschema="false" sqlMaxLimit="10000"> <!-- 测试表 --> <table name="user" primaryKey="id"

数据库中间件MyCat

我的梦境 提交于 2019-11-28 00:54:03
什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 主要特性 : 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号

MyCAT+MySQL 读写分离部署

孤街醉人 提交于 2019-11-27 19:15:37
单一的 MySQL 服务器一旦宕机,会造成单点故障,整个系统无法运转,所以要有主库(Master)和从库(Slave备库)两份,主库故障时自动切换至备库。另外,大多企业应用是写的少(INSERT/DELETE/UPDATE)查的多(SELECT),所以还要实现读写分离,以便根据读写比例分别扩展读、写库节点的数目。这么复杂的切库与数据分流,如果在应用内部实现,会很繁琐,而且耦合度高,可采用数据库中间件实现这些功能。本文是使用 MyCAT 实现双主(写)双从(读) MySQL 的部署。 作者: 王克锋 出处: https://kefeng.wang/2016/12/22/mycat-mysql/ 版权: 自由转载-非商用-非衍生-保持署名 ,转载请标明作者和出处。 1 MySQL 开源中间件比较 1.1 TDDL(alibaba) 不是独立运行的中间件,以 JAR 包形式供给应用调用;社区已停滞。 1.2 Amoeba(alibaba,陈思儒) 独立运行的中间件,介于应用和MySQL集群之间,后端使用JDBC Driver,所以更通用;社区已停滞。 1.3 Cobar(alibaba) 是 Amoeba 的进化版本,后端JDBC Driver改为原生的 MySQL 协议,不通用,但更强大(如主备切换);社区已停滞(2013年)。 1.4 MyCAT 是 Cobar 的进化版本,后端由