MySQL之中间件Mycat实现读写分离

本文详细介绍了MySQL的读写分离原理,重点讨论了Mycat这一中间件在实现读写分离中的作用。内容包括Mycat的概述、应用场景、配置步骤以及其在数据库集群中的角色,旨在帮助读者理解如何利用Mycat提升数据库并发负载能力和系统可用性。
摘要由CSDN通过智能技术生成

目录

一、MySQL 读写分离的概述

1、读写分离工作原理

1、读写分离工作原理

2、为什么要读写分离

3、实现读写分离的方式

4、常见的中间件程序

二、什么是MyCAT?

三、Mycat应用场景

四、Mycat 简单概括

五、Mycat实现mysql读写分离

1、环境准备

2、初始化环境

3、主从配置

3.1、主mysql服务器配置(192.168.58.33)

 3.2、从mysql服务器配置(192.168.59.112)

4、安装mycat(192.168.58.20)

5、客户机上测试(192.168.58.35)

 6、修改 mycat 配置文件

7、主服务器上建立一个用户

8、修改 mycat 配置文件/apps/mycat/conf/schema.xml

8、修改 mycat 配置文件/apps/mycat/conf/schema.xml

9、客户端测试读写分离

六、总结


一、MySQL 读写分离的概述


Mysql 作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台MySQL    作为独立的数据库是完全不能满足实际需求的,无论是在安全性, 高可用性以及高并发等各个方面。

因此,一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力,这样的方案来进行部署与实施的。
 

1、读写分离工作原理

基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库    处理SELECT 查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库

1、读写分离工作原理

基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库    处理SELECT 查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库

2、为什么要读写分离

  • ① 面对越来越大的访问压力,单台的服务器的性能成为瓶颈,需要分担负载
  • ② 主从只负责各自的写和读,极大程度的缓解 X 锁和S 锁争用
  • ③ 从库可配置myisam     引擎,提升查询性能以及节约系统开销
  • ④ 增加冗余,提高可用性

3、实现读写分离的方式

一般有两种方式实现

应用程序层实现,网站的程序实现
应用程序层实现指的是在应用程序内部及连接器中实现读写分离

优点:

① 应用程序内部实现读写分离,安装既可以使用;
② 减少一定部署难度;
③ 访问压力在一定级别以下,性能很好。

缺点:

① 架构一旦调整,代码要跟着变;
② 难以实现高级应用,如自动分库,分表;
③ 无法适用大型应用场景。

4、常见的中间件程序

Cobar       

阿里巴巴B2B 开发的关系型分布式系统,管理将近 3000 个MySQL 实例。 在阿里经受住了考验, 后面由于作者的走开的原因 cobar 没有人维护 了,阿里也开发了 tddl 替代cobar。

MyCAT

社区爱好者在阿里 cobar 基础上进行二次开发,解决了 cobar 当时存 在的一些问题,并且加入了许多新的功能在其中。目前 MyCAT社区活   跃度很高,目前已经有一些公司在使用 MyCAT。总体来说支持度比 较高,也会一直维护下去,

OneProxy

数据库界大牛,前支付宝数据库团队领导楼总开发,基于 mysql 官方 的proxy 思想利用c 进行开发的,OneProxy   是一款商业收费的中间件,舍去了一些功能点,专注在性能和稳定性上。有朋友测试过说在 高并发下很稳定。

Vitess

这个中间件是Youtube 生产在使用的,但是架构很复杂。   与以往中间件不同,使用 Vitess 应用改动比较大要 使用他提供语言的API 接口,我们可以借鉴他其中的一些设计思想。

Kingshard

Kingshard 是前 360Atlas 中间件开发团队的陈菲利用业务时间 用go 语言开发的,目前参与开发的人员有 3 个左右, 目前来看还不是成熟可以使用的产品,需要在不断完善。

Atlas

360 团队基于mysql proxy 把 lua 用C 改写。原有版本是支持分表, 目前已经放出了分库分表版本。在网上看到一些朋友经常说在高并 发下会经常挂掉,如果大家要使用需要提前做好测试。

MaxScale 与MySQL Route

这两个中间件都算是官方的,MaxScale 是mariadb (MySQL   原作者维护的一个版本)研发的,目前版本不支持分库分表。MySQL Route 是现在MySQL 官方 Oracle 公司发布出来的一个中间件

二、什么是MyCAT?

  • 一个彻底开源的,面向企业应用开发的大数据库集群; 支持事务、ACID、可以替代MySQL 的加强版数据库;一个可以视为MySQL 集群的企业级数据库,用来替代昂贵的 Oracle 集群; 一个融合内存缓存技术、NoSQL 技术、HDFS (Hadoop Distributed File System:分步式文件系统)大数据的新型SQL   Server; 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品;
  • 一个新颖的数据库中间件产品。

三、Mycat应用场景

mycat适用的场景很丰富,以下是几个典型的应用场景

  • 纯的读写分离,此时配置最为简单,支持读写分离,主从切换
  • 分库分表,对于超过1000万的表进行分片,最大支持1000亿的单表分片
  • 多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化报表系统,借助于Mycat的分表能力,处理大规模报表的统计
  • 替代Hbase,分析大数据,作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时Mycat可能是最简单有效的选择

Mycat长期路线图

强化分布式数据库中间件的方面的功能,使之具备丰富的插件、强大的数据库智能优化功能、全面的系统监控能力、以及方便的数据运维工具,实现在线数据扩容、迁移等高级功能进一步挺进大数据计算领域,深度结合Spark Stream和Storm等分布式实时流引擎,能够完成快速的巨表关联、排序、分组聚合等 OLAP方向的能力,并集成一些热门常用的实时分析算法,让工程师以及DBA们更容易用Mycat实现一些高级数据分析处理功能不断强化Mycat开源社区的技术水平,吸引更多的IT技术专家,使得Mycat社区成为中国的Apache,并将Mycat推到Apache基金会,成为国内顶尖开源项目,最终能够让一部分志愿者成为专职的Mycat开发者,荣耀跟实力一起提升

四、Mycat 简单概括

1、一个彻底开源的,面向企业应用开发的大数据库集群

2、支持事务、ACID、可以替代MySQL的加强版数据库

3、一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

4、一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server

5、结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

6、一个新颖的数据库中间件产品


 

五、Mycat实现mysql读写分离

1、环境准备

 

master服务器 192.168.58.33
slave1服务器 192.168.58.19
mycat服务器 192.168.58.20
客户机 192.168.58.35

2、初始化环境

#每台服务器上都初始化,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

 

3、主从配置

3.1、主mysql服务器配置(192.168.58.33)

#修改配置文件
vim /etc/my.cnf
server-id = 1
log-bin=master-bin
binlog_format=MIXED
log-slave-updates=true
 
 
#重启服务
systemctl restart mysqld
 
(3)#进入数据库授权,查看二进制文件及节点号
mysql -uroot -p123123
grant replication slave on *.* to 'myslave'@'192.168.58.%' identified by '123456';
flush privileges;
show master status;
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值