时间:2021-07-01 10:21:17 帮助过:70人阅读
1、下载cobar http://code.alibabatech.com/wiki/display/cobar/release
2、进入cobar-server-1.2.4目录,可以看到Cobar的主要目录如下:
bin #包含Cobar的启动、重启、停止等脚本文件
conf #包含Cobar所有配置文件
lib #包含Cobar及其依赖的jar文件
logs #包含Cobar所有日志文件
3、Cobar的所有配置文件全部放在conf目录中,进入conf目录,可以看到:
server.xml #Cobar系统、用户、集群等相关配置
schema.xml #schema,dataNode,dataSource相关配置
rule.xml #分布式规则定义
log4j.xml #日志相关配置
4、mysql中数据准备
配置两台机器的mysql,ip地址分别为:192.168.1.110 、 192.168.1.113 端口为3306 用户名 root 密码为空。我们需要在 192.168.1.110上创建database:dbtest1,dbtest2,dbtest3;table:tb1(在dbtest1上),tb2(dbtest2、dbtest3上)。在192.168.1.113上创建database:dbtest31,dbtest32;table:tb1(dbtest31上),tb2(dbtest32上)
数据库创建脚本:
#########################################192.168.1.110 #创建dbtest1 drop database if exists dbtest1; create database dbtest1; use dbtest1; #在dbtest1上创建tb1 create table tb1( id int not null, gmt datetime); #创建dbtest2 drop database if exists dbtest2; create database dbtest2; use dbtest2; #在dbtest2上创建tb2 create table tb2( id int not null, val varchar(256)); #创建dbtest3 drop database if exists dbtest3; create database dbtest3; use dbtest3; #在dbtest3上创建tb2 create table tb2( id int not null, val varchar(256)); #########################################192.168.1.113 #创建dbtest31 drop database if exists dbtest1; create database dbtest1; use dbtest31; #在dbtest1上创建tb1 create table tb1( id int not null, gmt datetime); #创建dbtest32 drop database if exists dbtest2; create database dbtest2; use dbtest32; #在dbtest2上创建tb2 create table tb2( id int not null, val varchar(256)); |
5、配置schema.xml
参考:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=7671478
请确保机器上设置了JAVA环境变量JAVA_HOME
|
此处要注意开启远程连接root用户的权限
grant all privileges on *.* to root#'%'
6、配置rule.xml
tableRule
tableRule主要作用是用来判断SQL语句路由到哪些datanode执行,Cobar是通过在SQL中提取一个或多个字段的值,并根据这些字段的值来决定路由到哪个库执行。因此,tableRule定义两个要素:
1)按表中的哪个字段路由?------下文中我们称此字段为路由字段
2)有了字段值,如何路由?------即路由函数
|
function
参考:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=7671871
|
7、配置server.xml
System
|
User
-->
-->
|
Cluster
在实际应用中,经常需要部署一个Cobar集群,我们称集群中的一台Cobar为一个Cobar节点。
|
用户只需登录Cobar的服务端口(8066),运行Cobar自带的查询命令show cobar_cluster,便可查询集群中所有节点的运行情况以及权重,并根据查询结果做负载均衡。
mysql -h192.168.1.110 -utest -ptest -P8066
mysql>show cobar_cluster; #查询cluster配置中正常的Cobar节点
+---------------+--------+
| HOST | WEIGHT |
+---------------+--------+
| 192.168.1.110 | 1 |
| 192.168.1.113 | 2 |
+---------------+--------+
注意:
1)如果需要配置Cobar集群,当前Cobar自身也需要作为一个节点配置在cluster中,Cobar不会默认向自己发心跳;
2)show cobar_cluster只显示cluster配置中得正常Cobar节点,如果节点异常(如超时或错误),结果中便不会包含此节点。
8、访问方式
由于Cobar遵循MySQL协议,访问Cobar的方式与访问MySQL数据库完全相同。
支持MySQL命令行方式访问
#命令行
mysql -h192.168.1.110 -utest -ptest -P8066 -Ddb_shard
bitsCN.com