Cobar简介(了解)
分布式:
Cobar的分布式主要是通过将表放入不同的库来实现:
1. Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分;
2. Cobar也支持将不同的表放入不同的库。
HA:
在用户配置了MySQL心跳的情况下,Cobar可以自动向后端连接的MySQL发送心跳,判断MySQL运行状况,一旦运行出现异常,Cobar可以自动切换到备机工作。但需要强调的是:
1. Cobar的主备切换有两种触发方式,一种是用户手动触发,一种是Cobar的心跳语句检测到异常后自动触发。那么,当心跳检测到主机异常,切换到备机,如果主机恢复了,需要用户手动切回主机工作,Cobar不会在主机恢复时自动切换回主机,除非备机的心跳也返回异常。
2. Cobar只检查MySQL主备异常,不关心主备之间的数据同步,因此用户需要在使用Cobar之前在MySQL主备上配置双向同步。
开始正文
1.需求
数据量扩大后数据库高效,正常运行。
2.测试
Cobar本地单点部署测试(后面介绍集群部署)
简单分库分表Demo:
系统对外提供的数据库名是 dbtest ,并且其中有两张表tb1和tb2。
tb1表的数据被映射到物理数据库dbtest1的tb1上。
tb2表的一部分数据被映射到物理数据库dbtest2的tb2上,另外一部分数据被映射到物理数据库dbtest3的tb2上。
MySQL所在服务器IP为192.168.31.180,端口为3306,用户名为 item_dev,密码为142569,我们需要创建 database:dbtest1、dbtest2、dbtest3,table:tb1、tb2:
Cobar配置,文件内容通俗易懂:
Cobar解压之后有四个目录:
bin/:可执行文件目录,包含启动,关闭和重启脚本
lib/:逻辑类库目录,包含了Cobar所需的jar包
conf/:配置文件目录
logs/:运行日志目录,最主要的log有两个:stdout.log 和 console.log
schema.xml:
rule.xml:可以看出分表的规则是,按照id字段把tb2表中的数据分配到dnTest2和dnTest3两个分区中,其中id小于512的数据会被放到dnTest2库的分区中,而其余的会被放到dnTest3库的分区中,等多路由算法待研究。
rule.xml
server.xml,集群配置也要在这里,<cluster>:
运行Cobar:
[admin@DELL cobar-server-1.2.6]$ ./bin/startup.sh
登录Cobar:
[admin@DELL cobar-server-1.2.6]$ mysql -h192.168.31.180 -utest -ptest -P8066 -Ddbtest