Windows中使用MyCat实现读写分离

一、关于MyCat

什么是MyCat?

  1. 一个彻底开源的,面向企业应用开发的大数据库集群 。
  2. 支持事务、ACID、可以替代MySQL的加强版数据库。        
  3. 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群。     
  4. 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server。     
  5. 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。      
  6. 一个新颖的数据库中间件产品。

MyCat能做什么,有什么用途?

  1. 分库分表,把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。
  2. 读写分离,线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能。

MyCat官方链接:

GitHub:https://github.com/MyCATApache/Mycat-Server

官网: http://www.mycat.io/

下载路径:https://github.com/MyCATApache/Mycat-download 

具体下载哪个版本以发布为准,官方推荐1.4,1.5。

二、使用教程

注意:mycat不负责任何数据同步问题,因此需提前配置好mysql的主从复制数据自动同步。

MyCat三个主要配置文件,rule.xml表示分片规则、schema.xml是最主要的配置项,可配置物理数据库连接与分片等、server.xml可配置连接用户名与密码等。

Windows中使用MyCat实现读写分离_第1张图片

 1.在server.xml添加用户

在mycat:server标签下添加user


	admin
	api

name表示连接时用户名称,password表示连接密码,api表示schema.xml中名为api的schema标签配置,同时也是数据库名称。

2.在schema.xml中配置'api'









    select user();
      
        
    

schema中的name是数据库名称

sqlMaxLimit配置默认查询数量 。

database为真实数据库名 。

balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。

balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡。

balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。

balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。

writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 。

writeType="1",所有写操作都随机的发送到配置的 writeHost。

3.Mycat启动

点击bin/mycat.bat,安装mycat服务

Windows中使用MyCat实现读写分离_第2张图片

 启动服务,默认端口8066。

4.用Mysql客户端连接Mycat,并写入数据

用户名和密码就是在server.xml中配置的数据。

Windows中使用MyCat实现读写分离_第3张图片

在MyCat连接中插入一条数据:

Windows中使用MyCat实现读写分离_第4张图片

 查看3306库中的api_user表:

Windows中使用MyCat实现读写分离_第5张图片

查看3307库中的api_user表: 

Windows中使用MyCat实现读写分离_第6张图片

有一个需要注意的是,主节点(写库)宕机时,读节点也不能读。

Windows中使用MyCat实现读写分离_第7张图片

Windows中使用MyCat实现读写分离_第8张图片

 

你可能感兴趣的:(Java,MyCat,读写分离)