mycat

[转帖]MyCat教程【简单介绍】

拥有回忆 提交于 2019-12-02 08:24:27
MyCat教程【简单介绍】 2019-10-15 10:27:23 波波烤鸭 阅读数 618 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_38526573/article/details/102562219 pg 有 citus 应该都是类似的东西. 一、MyCat简介 1. 什么是MyCat   MyCat 是目前最流行的 基于 java 语言编写的 数据库中间件 ,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是 分库分表 。配合数据库的主从模式还可实现 读写分离 。   MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大。   MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型NoSQL

布式数据库中间件MyCAT+Mysql

北慕城南 提交于 2019-12-02 07:32:20
Windows配置mycat MyCat使用Mysql的通讯协议模拟成一个MySQl服务器,并建立了完整的 Schema(数据库) 、 Table(数据表) 、 User(用户) 的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode上的真实的物理库中,这样一来所有能使用MySQL的客户端及编程语言都能将Mycat当成MYSQLServer使用,不必开发新的客户端。 Mycat的原理:当Mycat收到一个客户端发送的SQL请求,会先对SQL进行语法分析和检查,分析的结果用SQL路由,SQL路由策略支持传统的基于表格的分片字段进行分片,也支持独有的基于数据库E-R关系的分别片策略,对于路由到多个数据节点(DataNode)的SQL,则会对收到的数据集进行”归并“,然后输出到客户端。 DataNode是MyCat的逻辑数据节点,映射到后端的某一个物理数据库的一个Datebase,为了做到系统高可用,每个DataNode可以配置多个引用地址(DataSource),当主DataSource被检测为不可用时,系统会自动切换到下一个可用的DataSource上,这里的DataSoure即可认为是Mysql的主流服务器的地址。 一、下载mycat安装包 https://github.com/MyCATApache/Mycat-download/tree/master/1.6

MyCat教程三:安装及配置介绍

血红的双手。 提交于 2019-12-02 06:18:02
一、安装MyCat 1.安装准备环境 1.1 安装JDK   因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装 JDK 是必须的。 1.2 放开相关端口   在主从节点上都放开对端口3306的访问,或者直接 关闭防火墙 。 # 临时关闭 service iptables stop service iptables start # 永久关闭 chkconfig iptables on chkconfig iptables off # 查看防火墙状态 service iptables status 1.3 root账号   MyCat是我们的数据库中间件,那么MyCat必然要能够访问对应的 主从 数据库,所以在 主从 数据库中我们需要分别创建访问的账号。 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges; 2.安装MyCat 2.1 下载安装软件 官网地址: http://www.mycat.io/ 2.2 上传解压安装   将下载的文件上传到 /usr/local 目录下,并解压 2.3 目录介绍   解压后的目录结构如下: 目录 描述 bin 目录里是启动脚本 conf 目录里是配置文件

MyCat教程一:MyCat的简单介绍

徘徊边缘 提交于 2019-12-02 03:20:40
MyCat教程二:mysql主从复制实现 MyCat教程三:安装及配置介绍 MyCat教程四:实现读写分离 MyCat教程五:实现分库分表 MyCat教程六:全局序列号-全局主键的自增长 一、MyCat简介 1. 什么是MyCat   MyCat 是目前最流行的 基于 java 语言编写的 数据库中间件 ,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是 分库分表 。配合数据库的主从模式还可实现 读写分离 。   MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大。   MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型NoSQL 方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在 MyCat 里,都是一个传统的数据库表,支持标准的 SQL 语句进行数据的操作,这样一来,对前端业务系统来说

社区投稿 | DBLE和Mycat跨分片查询结果不一致案例分析

落爺英雄遲暮 提交于 2019-12-02 00:40:04
1.背景 某一零售业后端使用了分布式中间件+MySQL数据库作为后端存储。但是因为历史问题存在两种分布式中间件,分别是Mycat和DBLE,共用一组后端MySQL实例。分片规则以及后端数据完全一致。最近碰到了一个比较有意思的场景,财务结算单来往明细和业务来往单据的关联查询。一条跨节点join查询在DBLE、Mycat的查询得到的结果不一致。究竟谁对谁错? 2.DBLE项目介绍 DBLE官方网站: https://opensource.actionsky.com 可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础 DBLE 官方项目: https://github.com/actiontech/dble 如对源码有兴趣或者需要定制的功能的可以通过源码编译安装 DBLE 下载地址: https://github.com/actiontech/dble/releases DBLE 官方社区交流:669663113 3.环境准备 在虚拟机搭建类似架构,模拟场景,比较Mycat-DBLE在跨节点join上的异同点。 3.1测试架构 测试环境架构比较简单,DBLE与Mycat共用数据库。 3.2测试软件版本 软件名称 软件版本 端口 管理端口 DBLE DBLE-2.18.10.1-cb392c3

用户福利 | DBLE 社区支持免费 Mycat 问题诊断

断了今生、忘了曾经 提交于 2019-12-02 00:39:49
原创作者:[爱可生开源社区] 2017年10月24日,爱可生正式开源了自主研发的企业级分布式中间件 — DBLE,江湖人送外号 “Mycat Plus”。相对于 Mycat,DBLE 从以下四点进行了增强: 修复了大量 Mycat 历史遗留的 Bug https://actiontech.github.io/dble-docs-cn/0.overvi... 按月稳定的版本更新,持续的开发维护 https://github.com 活跃和谐的社群交流,快速的 issue 响应修复 jq.qq.com/?_wv=1027&k=5G8YoO 定期的线上线下交流,用户故事的学习分享 https://mp.weixin.qq.com/s/AagV1si3pTykO953_zNHz 简单稳定,持续维护,良好的社区环境和广大的群众基础使 DBLE 得到了社区的大力支持。 Mycat问题诊断支持 Mycat 作为一款开源的,面向企业应用开发的大数据库集群, 现在依旧有许多用户使用。然而除了 Mycat 自身存在的一些缺陷以外,近年来 Mycat 社区活跃质量也有所下降,很多社区用户在遇到问题时找不到官方的支持。因此,爱可生开源社区将决定为用户提供免费的 Mycat 问题诊断支持,其 目的 在于: 更好的帮助广大的 Mycat 用户 收集更多的Mycat问题场景,并在 DBLE 上得以加强

​深度分析 | MyCat与DBLE的对比性能调优

偶尔善良 提交于 2019-12-02 00:39:35
作者简介 蓝寅, 开源分布式中间件DBLE项目 负责人;持续专注于数据库方面的技术, 始终在一线从事开发;对数据复制,读写分离,分库分表的有深入的理解与实践。 问题起因: 用benchmarksql_for_mysql对原生MyCat-1.6.1和DBLE-2.17.07版做性能测试对比,发现DBLE性能只到原生版MyCat的70%左右。 问题分析过程: 分析过程主要有以下内容:包括现象,收集数据,分析猜测原因,验证猜测的方式来进行。 开源分布式中间件DBLE: 社区官网,获取DBLE快速入门指南及最新资讯: https://opensource.actionsky.com GitHub主页,查看官方文档: https://github.com/actiontech/dble 社区技术交流群,迅速获取官方支持: QQ群:669663113 1.分析瓶颈 1.1 先对两者进行一个CPU占用的堆栈分析 通过对CPU火焰图的比较,发现DBLE用在纯排序上的CPU占用在15%以上,而MyCat在排序上没有看到明显的CPU占用。( 复盘时的思考:这里有明显的可疑之处,应当及早观察两者是否公平) 1.2 首先猜测可能的原因 a.由于MyCat对以下这条用例实现有bug:具体方式是直接原句下发SQL到节点,收到各个节点的结果后直接做加法;而DBLE则是改写为select distinct s_i

技术分享 | MyCat的坑如何在分布式中间件DBLE上改善(内含视频链接)

守給你的承諾、 提交于 2019-12-02 00:39:23
作者简介 蓝寅,开源分布式中间件DBLE项目负责人;持续专注于数据库方面的技术, 始终在一线从事开发;对数据复制,读写分离,分库分表的有深入的理解与实践。 3月14日,爱可生开源社区联合IT168发布了一期《MyCat的坑如何在分布式中间件DBLE上改善》的直播,根据反馈,现将直播内容节选成文,以供大家回顾重温。 Tips:考虑到大家的不同口味,开源社区官网上线了完整版录播视频 ,无论是喜欢文字,爱好图文,青睐于完整版视频的同学都能找到自己喜欢的打开方式! 直播视频回顾请点击“ 录屏 ”,一键直达。 “ 以下为分享内容的正文部分 ” 背景 近年来,随着移动互联网、物联网、人工智能等技术的兴起,需要处理的数据越来越多,作为存储架构核心的关系型数据库不可避免的引发了需要扩容的问题,在这个过程中分库分表被发明出来。 分库分表最初不需要中间件,由各自应用的开发人员自己来负责,应用除了要了解业务逻辑以外,还需要明确完整的拆分规则,成本较高,对开发人员要求也很高,并且不利于任务和逻辑的解耦。因此,中间件应运而生。 分布式系统架构基本分成三层,最上面是一层是APP层,中间是中间件层,下面是数据存储层。 今天分享的内容主要为中间件,那么 一个理想的中间件应该是什么样的? 第一,透明性, 理想的中间件会向应用开发人员屏蔽后面具体拆分的细节。数据存储的工作被独立出来

MyCAT详解

跟風遠走 提交于 2019-12-01 23:24:24
一、MyCAT概述 MyCAT是一款由阿里Cobar演变而来的用于支持数据库读写分离、分片的分布式中间件。MyCAT可不但支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库。基础架构如下: 1、MyCAT原理 MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。 2、MyCAT功能 (1)数据库分片(Sharding) 通过某种条件,将同一数据库中的数据分散的存储到多个数据库中,已达到分散单台数据库设备负载的效果,这就是数据库分片。 a.水平拆分 同一张表的不同记录,根据表的某个字段的某种规则拆分到多个数据库(主机)上,这既是水平拆分。 单库业务表可能会过于庞大,存在单库读写与存储瓶颈,这种情况可以通过水平拆分解决,水平拆分基本架构如下: 常用水平拆分规则: *ID *日期 *特定字段取模 优点: *拆分规则抽象好,join操作基本可以数据库内完成 *不存在单库大数据,高并发的性能瓶颈 *应用端改造少 *提高了系统稳定性和负载能力 缺点: *拆分规则难以抽象 *分片事务一致性难以解决 *数据多次扩展难度跟维护量极大 *跨库join性能较差 b.垂直拆分 不同的表切分到不同的数据库(主机)上,这就是垂直拆分。

mycat分库分表

て烟熏妆下的殇ゞ 提交于 2019-12-01 18:42:51
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。 安装 Mycat官网: http://www.mycat.io/ 可以了解下Mycat的背景和应用情况,这样使用起来比较有信心。 Mycat下载地址: http://dl.mycat.io/ 官网有个文档,属于详细的介绍,初次入门,看起来比较花时间。 下载: 建议大家选择 1.6-RELEASE 版本,毕竟是比较稳定的版本。 安装: 根据不同的系统选择不同的版本。包括linux、windows、mac,作者考虑还是非常周全的,当然,也有源码版的。(ps:源码版的下载后,只要配置正确,就可以正常运行调试,这个赞一下。) Mycat的安装其实只要解压下载的目录就可以了,非常简单。 安装完成后,目录如下: 目录 说明 bin mycat命令,启动、重启、停止等 catlet catlet为Mycat的一个扩展功能 conf Mycat 配置信息,重点关注 lib Mycat引用的jar包,Mycat是java开发的 logs 日志文件,包括Mycat启动的日志和运行的日志。 配置