欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows中使用MyCat实现读写分离

程序员文章站 2024-03-21 09:08:16
...

一、关于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.在server.xml添加用户

在mycat:server标签下添加user

<user name="admin">
	<property name="password">admin</property>
	<property name="schemas">api</property>
</user>

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

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

<!-- 数据库配置,与server.xml中的数据库对应 -->
<schema name="api" checkSQLschema="false" dataNode="apiNode"></schema>

<!-- 分片配置 -->
<dataNode name="apiNode" dataHost="apiHost" database="api" />

<!-- 物理数据库配置 -->
<dataHost name="apiHost" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql" dbDriver="native">
    <heartbeat>select user();</heartbeat>
    <writeHost host="apiWriteHost" url="127.0.0.1:3306" user="root" password="root">  
        <readHost host="apiReadHost" url="127.0.0.1:3307" user="root" password="root"></readHost>
    </writeHost>
</dataHost>

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实现读写分离

 启动服务,默认端口8066。

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

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

Windows中使用MyCat实现读写分离

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

Windows中使用MyCat实现读写分离

 查看3306库中的api_user表:

Windows中使用MyCat实现读写分离

查看3307库中的api_user表: 

Windows中使用MyCat实现读写分离

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

Windows中使用MyCat实现读写分离

Windows中使用MyCat实现读写分离

 

相关标签: 涨知识