Mycat分库分表读写分离

具体操作参看: https://blog.csdn.net/vbirdbest/article/details/83448757 写得非常好,兄嘚~优秀!!!
下边针对部署过程中出现的问题说一下自己的感受

1. 模拟多数据库节点

方法1
安装虚拟机后,安装多个linux,再安装多个mysql数据库。生产适用,个人操作难度较大

方法2
使用docker安装多个mysq,简单方便适合学习

方法3
在一个mysql中,使用多个数据库来模拟!只为学习,部署环境就越简单越好

2. 配置文件

核心配置文件有3个: rule.xml server.xml schema.xml,主要修改最后一个,看一下我的基本配置:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"> <!-- Mycat虚拟数据库 -->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!-- Mycat虚拟表 表名 物理节点 路由规则 -->
<table name="tbl_order" dataNode="dn1,dn2,dn3" rule="mod-long" />
</schema> <!-- 节点 -->
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" /> <!-- 节点信息配置 -->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- 写配置 -->
<writeHost host="hostM1" url="localhost:3306" user="root" password="123456">
<!-- 读配置 -->
<!-- <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /> -->
</writeHost>
</dataHost>
</mycat:schema>

说明一下:

rule 指定分片规则,默认auto-sharding-long根据范围进行路由, 比如:

  • 第1-1000条存到dn1节点
  • 第1001-2000条存到dn2节点
  • 第2001~3000条存到dn3节点
    (数据量少的话,看不到效果,一开始用默认的,还以为配错了)

rule="mod-long"根据id路由(id%分片数),比如:

  • 第1条存到是dn1节点
  • 第2条存到是dn2节点
  • 第3条存到是dn3节点
  • 第4条存到是dn1节点
  • 依次类推

Mycat默认端口8066 数据管理端口9066 运行Mycat前,系统要提前安装jdk

最新文章

  1. centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
  2. jquery each函数对应的continue 和 break方法
  3. memmove 和 memcpy的区别
  4. pomelo 服务器开发常用术语
  5. Memcached 深度分析
  6. codeforces #261 C题 Pashmak and Buses(瞎搞)
  7. C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)
  8. 【Beta】 第五次Daily Scrum Meeting
  9. 初识RabbitMQ系列之二:下载安装
  10. React Native开发必备的10个插件包
  11. Yii整合ucenter实现单点登录
  12. Android内存优化(二)解析Memory Monitor、Allocation Tracker和Heap Dump
  13. Angular2入门:TypeScript的函数 - 剩余参数和箭头函数
  14. python中.py和.pyw文件的区别
  15. php Date()函数输出中文年月日时分秒
  16. 51Nod 1084:矩阵取数问题 V2(多维DP)
  17. swiper轮播的slide高度自适应
  18. TDD并不是看上去的那么美
  19. luogu P2757 [国家集训队]等差子序列
  20. 【转】vim中多标签和多窗口的使用

热门文章

  1. kafka(二) 高性能技术分析
  2. RSA算法java实现(BigInteger类的各种应用)
  3. java8 instant localDateTime
  4. [BUAA软工]Alpha阶段测试报告
  5. 使用iis部署asp.net core 中的坑
  6. 深度学习最全优化方法总结比较及在tensorflow实现
  7. 在 RPA10.X 运行异常,RPA9 却正常的问题处理
  8. Xamarin.FormsShell基础教程(8)Shell的模版构成
  9. CMDBuild部署教程
  10. Putty——支持Telnet,ssh连接的连接软件