mycat实现mysql读写分离

发布时间:2022-09-08 06:30

MYCAT介绍:
在整个IT系统架构中,数据库是非常重要,通常又是访问压力较大的一个服务,除了在程序开发的本身
做优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分
库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产
品上进行使用了。
Mycat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是
一个数据库代理(类似于Mysql Proxy),用MySQL客户端工具和命令行访问,而其后端可以用MySQL
原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。
Mycat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL
Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未
来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的
数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发
难度,提升开发速度
Mycat 官网:http://www.mycat.org.cn/

Mycat 关键特性:
○ 支持SQL92标准
○ 遵守MySQL 原生协议,跨语言,跨平台,跨数据库的通用中间件代理
○ 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群
○ 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
○ 基于Nio实现,有效管理线程,高并发问题
○ 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页
○ 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join
○ 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询
○ 支持多租户方案
○ 支持分布式事务(弱xa)
○ 支持全局序列号,解决分布式下的主键生成问题
○ 分片规则丰富,插件化开发,易于扩展
○ 强大的web,命令行监控
○ 支持前端作为mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉
○ 支持密码加密
○ 支持服务降级
○ 支持IP白名单
○ 支持SQL黑名单、sql注入攻击拦截
○ 支持分表(1.6)
○ 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)

Mycat应用场景
Mycat适用的场景很丰富,以下是几个典型的应用场景
○ 单纯的读写分离,此时配置最为简单,支持读写分离,主从切换
○ 分表分库,对于超过1000万的表进行分片,最大支持1000亿的单表分片
○ 多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化
○ 报表系统,借助于Mycat的分表能力,处理大规模报表的统计
替代Hbase,分析大数据
○ 作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时Mycat可能是最简单有效的选择
○ Mycat长期路线图
○ 强化分布式数据库中间件的方面的功能,使之具备丰富的插件、强大的数据库智能优化功能、全面的系统监控能力、以及方便的数据运维工具,实现在线数据扩容、迁移等高级功能
○ 进一步挺进大数据计算领域,深度结合Spark Stream和Storm等分布式实时流引擎,能够完成快速的巨表关联、排序、分组聚合等 OLAP方向的能力,并集成一些热门常用的实时分析算法,让工程师以及DBA们更容易用Mycat实现一些高级数据分析处理功能

MyCat的高可用性:
需要注意: 在生产环境中, Mycat节点最好使用双节点, 即双机热备环境, 防止Mycat这一层出现单点故障.可以使用的高可用集群方式有:
○ Keepalived+Mycat+Mysql
○ Keepalived+LVS+Mycat+Mysql
○ Keepalived+Haproxy+Mycat+Mysql

使用mycat实现读写分离:
mycat实现mysql读写分离_第1张图片
mycat 下载地址:http://dl.mycat.org.cn/

mycat实现mysql读写分离_第2张图片
mycat实现mysql读写分离_第3张图片
mycat实现mysql读写分离_第4张图片
mycat实现mysql读写分离_第5张图片

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号