CentOS6.4简单配置Cobar

  1. 云栖社区>
  2. 博客>
  3. 正文

CentOS6.4简单配置Cobar

缤纷世界wb 2013-05-14 16:47:00 浏览572
展开阅读全文

最小化安装CentOS6.4

关闭iptables和SELINUX

1、安装JDK,官方推荐JDK1.6

http://pan.baidu.com/share/link?shareid=453362&uk=1829018343

mkdir /usr/java

将jdk-6u43-linux-x64-rpm.bin上传到/usr/java

chmod 777 jdk-6u43-linux-x64-rpm.bin

./jdk-6u43-linux-x64-rpm.bin

设置环境变量

vi /etc/profile

在文件最后添加下面内容

JAVA_HOME=/usr/java/jdk1.6.0_43
JRE_HOME=/usr/java/jdk1.6.0_43/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使修改立即生效 

source /etc/profile

2、安装mysql,为了方便用yum进行安装

yum -y install mysql mysql-server

启动mysql

service mysqld start

设置用户

mysqladmin -u root password 'dsideal'

连接mysql设置权限

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "dsideal";

flush privileges;

3、创建测试数据库

#创建dbtest1
create database dbtest1;
use dbtest1;
#在dbtest1上创建tb1
create table tb1(id int not null, gmt   datetime);
#创建dbtest2
create database dbtest2;
use dbtest2;
#在dbtest2上创建tb2
create table tb2(id int not null, val varchar(256));  
#创建dbtest3
create database dbtest3;
use dbtest3;
#在dbtest3上创建tb2
create table tb2(id int not null, val varchar(256));

4、安装和配置Cobar

http://pan.baidu.com/share/link?shareid=453387&uk=1829018343

tar zxvf cobar-server-1.2.7.tar.gz

cd cobar-server-1.2.7

schema.xml配置如下(注意:schema.xml包含MySQL的IP、端口、用户名、密码等配置,您需要按照注释替换为您的MySQL信息。)

vi conf/schema.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cobar:schema SYSTEM "schema.dtd"> 
<cobar:schema xmlns:cobar="http://cobar.alibaba.com/">
    <!-- schema定义 -->
    <schema name="dbtest" dataNode="dnTest1">
        <table name="tb2" dataNode="dnTest2,dnTest3" rule="rule1" />
    </schema>
    <!-- 数据节点定义,数据节点由数据源和其他一些参数组织而成。-->
    <dataNode name="dnTest1">
        <property name="dataSource">
            <dataSourceRef>dsTest[0]</dataSourceRef>
        </property>
    </dataNode>
    <dataNode name="dnTest2">
        <property name="dataSource">
            <dataSourceRef>dsTest[1]</dataSourceRef>
        </property>
    </dataNode>
    <dataNode name="dnTest3">
        <property name="dataSource">
            <dataSourceRef>dsTest[2]</dataSourceRef>
        </property>
    </dataNode>
    <!-- 数据源定义,数据源是一个具体的后端数据连接的表示。-->
    <dataSource name="dsTest" type="mysql">
        <property name="location">
            <location>10.10.3.154:3306/dbtest1</location> <!--注意:替换为您的MySQL IP和Port-->
            <location>10.10.3.154:3306/dbtest2</location> <!--注意:替换为您的MySQL IP和Port-->
            <location>10.10.3.154:3306/dbtest3</location> <!--注意:替换为您的MySQL IP和Port-->
        </property>
        <property name="user">test</property> <!--注意:替换为您的MySQL用户名-->   
        <property name="password"></property> <!--注意:替换为您的MySQL密码-->    
        <property name="sqlMode">STRICT_TRANS_TABLES</property>  <!--连接的SQL模式-->
    </dataSource>
</cobar:schema>

 rule.xml配置如下(本文仅以数字类型的id字段作为拆分字段,将数据拆分到两个库中。)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cobar:rule SYSTEM "rule.dtd">
<cobar:rule xmlns:cobar="http://cobar.alibaba.com/">
    <!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法。-->
    <tableRule name="rule1">
        <rule>
            <columns>id</columns> 
            <algorithm><![CDATA[ func1(${id})]]></algorithm> 
        </rule>
    </tableRule>
    <!-- 路由函数定义,应用在路由规则的算法定义中,路由函数可以自定义扩展。-->
    <function name="func1" class="com.alibaba.cobar.route.function.PartitionByLong">
        <property name="partitionCount">2</property>
        <property name="partitionLength">512</property>
    </function>
</cobar:rule>

server.xml配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cobar:server SYSTEM "server.dtd">
<cobar:server xmlns:cobar="http://cobar.alibaba.com/">
    <!--定义Cobar用户名,密码-->
    <user name="test">
    <property name="password">test</property>
    <property name="schemas">dbtest</property>
    </user>
</cobar:server>

启动Cobar

./bin/startup.sh

查看logs目录下stdout.log, 启动成功日志如下

cat logs/stdout.log

23:49:49,183 INFO  ===============================================
23:49:49,193 INFO  Cobar is ready to startup ...
23:49:49,193 INFO  Startup processors ...
23:49:49,434 INFO  Startup connector ...
23:49:49,445 INFO  Initialize dataNodes ...
23:49:49,893 INFO  dnTest1:0 init success
23:49:50,103 INFO  dnTest3:0 init success
23:49:50,293 INFO  dnTest2:0 init success
23:49:50,326 INFO  CobarManager is started and listening on 9066
23:49:50,335 INFO  CobarServer is started and listening on 8066
23:49:50,336 INFO  ===============================================

访问Cobar同访问MySQL的方式完全相同, 常用访问方式如下

mysql -utest -ptest -P8066 -Ddbtest

用户名、密码和库都在server.xml配置文件中配置过

#JDBC(建议5.1以上的mysql driver版本)

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://10.10.3.154:8066/dbtest", "test", "test");

SQL执行示例,执行语句时与使用传统单一数据库无区别

insert into tb1 (id, gmt) values (1, now()); 
insert into tb2 (id, val) values (1, "part1");
insert into tb2 (id, val) values (2, "part1"), (513, "part2");

对于dbtest来说数据是全的

而对dbtest2和dbtest2来说就是被分割过的。

详细的文档访问

http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=7671478

网友评论

登录后评论
0/500
评论
缤纷世界wb
+ 关注