【愚公系列】2023年05月 Java教学课程 110-MySQL数据库(集群中间件Mycat2)
一、集群
1.集群的概念
1、集群历史背景:
随着互联网的迅速发展,数据量的增长和访问量的增加,单一数据库已经不能满足大规模网站的需求。传统的单机数据库在数据量达到一定级别时,系统性能会急剧下降,甚至系统崩溃。为了解决这个问题,数据库集群应运而生。
2、集群作用:
数据库集群是由多个数据库组成的系统,它们通过网络连接进行协作,提供更高的可用性、更好的性能和更强的可扩展性。具体来说,数据库集群有以下作用:
• 提高系统可用性:通过数据备份、负载均衡、故障转移等技术,确保系统在某个节点故障时能够继续提供服务。
• 提高系统性能:通过分布式计算和数据存储,实现并行处理,提高系统响应速度和处理能力。
• 提高系统可扩展性:通过增加节点数量,实现系统的线性扩展,满足数据量和访问量的增长需求。
• 提高数据安全性:通过数据备份和数据同步技术,确保数据的安全性和完整性。
数据库集群是一种高可用、高性能、高扩展性和高安全性的数据库解决方案,可以满足大规模网站和企业对数据处理的需求。
• Mycat2是一个开源的MySQL和MariaDB数据库集群解决方案,可以提供高可用性、高性能和可扩展性。它是基于MySQL协议和语法兼容的,支持分布式、读写分离、负载均衡等功能。Mycat2可以在分布式系统中作为数据分片和数据路由的中间件,也可以作为数据层缓存来提高数据库的性能。可以像使用MySQL一样使用Mycat2。对于开发人员来说根本感觉不到Mycat2的存在。Mycat2不单单是支持MySQL,像常用的关系型数据库Oracle、SqlServer都支持。
2.集群的原理
• 我们来说个例子,大海捞针和一个水瓶里捞针,毋庸置疑水瓶里一定能更快找到针,因为它需要检索的范围更小。数据库集群也是如此原理,我们可以将一个数据量为300G的数据库数据平均拆分成3部分,每个数据库中只存储100G数据,此时用户搜索,先经过我们中间代理层,中间代理层同时发出3个请求执行查询,比如第1台返回100条数据,耗时3秒,第2台返回200条数据,耗时3秒,第3台返回500条数据,耗时3秒,此时中间件只需要在800条记录中进行筛选,即可检索出用户要的结果,此时耗时其实一共只有3秒,因为每台机器做运算的时候,都是同时执行。如果我们此时直接在300G的数据库查询,耗时10秒,那使用中间件进行集群的效率就非常明显
• Mycat2的实现流程和这个流程大致相似。Mycat2自身不存储数据,但用户每次链接数据库的时候,直接连接Mycat2即可.所以我们Mycat2自身其实就是个逻辑数据库,它自身还有表结构,表结构叫逻辑表。
3.Mycat2环境搭建
3.1 Mycat2下载和安装
• 官网:http://www.mycat.org.cn/
mycat2运行环境框架:http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.20.zip
mycat2 jar包:http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies-2022-3-14.jar
下载好的运行框架解压,把mycat2的jar包放在运行环境框架目录下的lib里
3.2 Mycat2配置
1、配置datasource.json文件
目录地址:mycat\conf\datasources下prototypeDs.datasource.json
修改以下三项,指向自己真实的物理数据库地址
2、配置user.json
目录地址:mycat\conf\users下root.user.json
修改mycat登录的用户名和地址,注意用户名与文件名一直,如username改成yinlt,文件名就是yinlt.user.json
其它配置文件:
• server.json :服务类的配置
• state.json:服务状态配置
• users文件夹下:配置mycat2逻辑用户
• schemas文件夹下:配置mycat2逻辑库
• clusters文件夹下:集群分发配置
• schemas文件夹下:配置mycat2逻辑的库
3.3 启动mycat
windows 下直接启动 mycat\bin 目录下的mycat.bat就行
#PowerShell
./mycat install
./mycat start
./mycat status
#CMD
mycat install
mycat start
mycat status
默认的mycat的用户: root,密码: 123456, 端口8066
- 点赞
- 收藏
- 关注作者
评论(0)