zoukankan      html  css  js  c++  java
  • CentOS6.4简单配置Cobar

    最小化安装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

  • 相关阅读:
    python 学习之集合 三元运算 深浅拷贝
    python 学习之数据类型和for循环
    python 学习之运算符
    python 学习之编码转换和pycharm设置
    python 学习之python数据类型和流程控制
    Django实现下载文件名称为中文的处理
    递归删除postgresql数据库中所有表
    GO编程(打卡)-Task13: 并发编程
    GO编程(打卡)-Task12: 单元测试
    GO编程(打卡)-Task11: 反射机制
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/3078072.html
Copyright © 2011-2022 走看看