什么是mycat
Mycat是数据库中间件,所谓数据库中间件是连接Java应用程序和数据库中间的软件。
mycat的作用
-
分片与负载均衡
-
数据分片:MyCat通过将大表拆分为多个子表,并将这些子表分布在不同的数据库实例中,实现了数据的水平扩展。这不仅可以解决单个数据库实例存储空间有限的问题,还能通过并行处理提高查询和写入的速度。
-
负载均衡:MyCat能够在多个数据库实例之间进行负载均衡,确保数据访问的均匀分布,从而提升系统性能和可靠性。
-
读写分离
MyCat支持读写分离功能,即将读请求分发到从库,写请求发送到主库。这种机制可以显著提高系统的并发处理能力,因为读操作通常比写操作更频繁且耗时更少。
-
分布式事务
MyCat支持分布式事务的处理,确保在多个分片之间执行的事务能够保持一致性。这通过两阶段提交协议(2PC)等机制实现,尽管处理分布式事务会带来一定的性能开销,但它对于保证数据一致性至关重要。
-
跨库查询
MyCat支持对多个数据库实例的跨库查询,允许用户执行复杂的查询操作而无需担心底层数据库的物理分布。MyCat会自动将查询操作分解为多个子查询,并在各个分片上分别执行,最后合并结果返回给客户端。
-
多种数据库支持
MyCat支持常见的关系型数据库,如MySQL、MariaDB、Oracle、SQL Server等。这意味着开发者可以在不改变现有数据库架构的情况下,通过引入MyCat来实现分布式数据库系统的构建和管理。
-
高效的数据处理
MyCat通过SQL的解析和路由,将请求分发到正确的物理数据库表上,从而提高了数据处理的效率。同时,MyCat还提供了丰富的分片规则和插件化开发机制,使得系统易于扩展和定制。
-
成本节约
对于需要处理大量数据和高并发请求的企业级应用来说,MyCat提供了一个低成本的解决方案。通过MyCat,企业可以平滑地将现有的单机数据库和应用迁移到分布式数据库系统中,从而解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
-
易于集成与监控
MyCat作为一个中间件产品,其前端可以视为一个数据库代理,用户可以使用MySQL客户端工具和命令行进行访问。同时,MyCat还提供了强大的监控和管理功能,使得用户可以实时监控系统的运行状态并及时发现和解决性能瓶颈。
综上所述,MyCat在数据库分片、负载均衡、读写分离、分布式事务处理等方面发挥着重要作用,是构建高性能分布式数据库系统的有力工具。
安装mycat
创建一个放置我们压缩包的位置
mkdir mycat
将我们的压缩包拖入到这个文件夹里
解压
tar -vsxf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
解压完之后进入解压过的文件里,进入bin,尝试启动mycat
./mycat start
查看进程
ps -ef | grep mycat
启动成功
配置
在mycat文件夹里找到conf文件
进入找到server.xml和sechema.xml
server.xml
schema.xml
逻辑数据库和真是数据库的名字最好是一样
配置双主双从
配置好后,进入bin里启动并打开日志
./mycat console
成功
连接mysql
成功之后测试,增加或删除一个数据库或者表里的信息,看是否双主双从的数据会变,跟着变就是成功
mycat连接springboot
记住我们连接mysql的密码和端口号
配置springboot上的yml文件
加上mapper和controller层启动项目
查到数据
增删改时,我们的主从数据库也会跟着变化