栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

mycat的安装使用(技术篇)

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mycat的安装使用(技术篇)

第一章:概念 1.为什么要拆分:

①MySQL 实例内部结构

1.单一架构

[2]复制架构:

尽管搭建了复制架构,但是实际上从逻辑上来说仍然只有一个 db_hr 数据库。

②性能瓶颈

MySQL 工作过程中的性能瓶颈主要来自于下面三个方面(同等硬件条件下):

  • 数据存储量:单表 1000 万条数据达到极限;500 万条开始性能明显下降;300 万条开始就应该考虑拆分。
  • I/O 瓶颈:关系型数据库以硬盘作为主要存储介质,所以必然存在 I/O 瓶颈。
  • 访问量瓶颈:通常 MySQL 的最大连接数默认是100,最大可以达到 16384。

由此我们可以看出,对数据库进行拆分主要是出于数据量不断增加的挑战。

2、拆分方式 ①垂直拆分

垂直拆分是最容易想到的拆分方式。它按照项目的业务功能模块,把从属于不同模块的数据库表分散到对应的不同数据库中。

这种拆分的优缺点:
    -优点:
        -拆分的规则明确,不同的功能模块或者服务模块分配到不同的数据库
        -数据库维护与定位简单
    -缺点:
        -并没有解决单表数据量太大的问题
        -会出现跨库join
        -需要对上层应用系统的代码进行重构,修改原有的事务操作

②水平拆分

针对一张数据量很大的表,把它拆分为多张表,数据分流保存到各个拆分后的数据库表中。

如果数据量继续增加,超过一个单库能够容纳的极限则需要继续分库:

这种拆分方式的优缺点评价:

- 只分表不分库:
    - 同库无分布式事务问题,事务处理相对简单
    - 同库无跨库 join 问题
    - 表拆分后不存在超大型表的性能问题
    - 只要拆分规则定义好,很难出现扩展性的限制,但拆分规则设定并不简单
,规则一定会和业务挂钩,如根据 id、根据时间等。
- 既分表又分库:
    - 异库存在分布式事务问题
    - 异库存在跨库 join 问题
    - 多数据源管理难度加大,代码复杂度增加

3、MyCat 简介

尽管拆分后面临很多问题,但是随着数据量的增加又不得不拆,mycat就是帮助我们实现这个功能的:

MyCat 是一款数据库中间件。

对于应用程序来说完全透明:不管底层的数据如何拆分,应用只需要连接 MyCat 即可完成对数据的操作。

支持 MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库。

MyCat 不存储数据,它只是数据的路由。

底层拦截用户发送过来的 SQL 语句并进行分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

Mycat的特性如下:

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

第二章 安装与配置 1、获取 MyCat 程序

访问这个地址下载:https://codeload.github.com/MyCATApache/Mycat-Server/zip/Mycat-server-1675-release

2、解压 MyCat 压缩包到idea中 3、配置 schema.xml

从这里开始,我们就是在初步搭建 MyCat 服务器。我们想要初步实现的目标:

  • MyCat 中配置虚拟数据库、虚拟数据库表,物理库和物理表暂时不拆分
  • 启动 MyCat
  • 使用客户端连接到 MyCat

而让 MyCat 连接物理库、配置虚拟库、虚拟表都需要在 schema.xml 中配置。

①配置文件位置 

         

②告诉 MyCat 如何连接物理库schema.xml中配置






	

		
select user()

4、配置 server.xml

①配置文件位置

②配置 MyCat 自身的连接信息 


	
		123456
		virtual_hr
	

5、启动 MyCat

②配置 JVM 参数

  • 指定 MYCAT_HOME:这个参数是需要指定 MyCat 工程的 src/main 目录的完整路径。
  • 指定直接内存大小:如果 512M 不够,那就指定 1024M。

-DMYCAT_HOME=D:idea2019workspacemycat210722srcmain
-XX:MaxDirectMemorySize=512M

有可能的问题:

 

此时就可以通过数据库进行链接了(注意启动服务是本地localhost,端口8066)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/912556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号