使用淘宝中间件cobar实现mysql分库分表

cobar 编译安装配置笔记
https://github.com/alibaba/cobar
windows下使用eclipse导入cobar项目,eclipse File -> Import -> Git
https://github.com/alibaba/cobar

linux下:wget https://codeload.github.com/alibaba/cobar/zip/master
F:\mycat>mvn compile
F:\mycat>mvn package

生成压缩包cobar-server-1.2.7.tar.gz,放到linux环境中解压出来,没有logs目录,新建并运行查看目录结构如下:
[root@XAYQ-Test3 ~]# tree /opt/cobar-server
/opt/software/cobar-server
├── bin
│   ├── restart.sh
│   ├── shutdown.sh
│   ├── startup.bat
│   └── startup.sh
├── conf
│   ├── log4j.xml                       #日志配置文件,不需要修改
│   ├── rule.xml                        #mysql路由规则
│   ├── schema.xml                      #
│   └── server.xml                      #
├── lib
│   ├── cobar-server-1.2.7.jar
│   └── log4j-1.2.17.jar
└── logs
    ├── alarm.log
    ├── console.log
    ├── heartbeat.log
    ├── stdout.log
    └── stdout.log.2014-07-10
   
1.主要修改以下几个文件:rule.xml
  <!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法 -->
  <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>
 
2.schema.xml ,定义数据节点
<cobar:schema xmlns:cobar="http://cobar.alibaba.com/">

  <!-- schema定义 -->
  <schema name="cppdb" dataNode="cppDb1">
    <table name="tb2" dataNode="cppDb2,cppDb3" rule="rule1" />
  </schema>

  <!-- 数据节点定义,数据节点由数据源和其他一些参数组织而成。-->
  <dataNode name="cppDb1">
    <property name="dataSource">
      <dataSourceRef>cppDataSource[0]</dataSourceRef>
    </property>
  </dataNode>
  <dataNode name="cppDb2">
    <property name="dataSource">
      <dataSourceRef>cppDataSource[1]</dataSourceRef>
    </property>
  </dataNode>
  <dataNode name="cppDb3">
    <property name="dataSource">
      <dataSourceRef>cppDataSource[2]</dataSourceRef>
    </property>
  </dataNode>

  <!-- 数据源定义,数据源是一个具体的后端数据连接的表示。-->
  <dataSource name="cppDataSource" type="mysql">
    <property name="location">
      <location>172.22.14.7:3306/cpp1</location>
      <location>172.22.14.7:3306/cpp2</location>
      <location>172.22.14.7:3306/cpp3</location>
    </property>
    <property name="user">root</property>
    <property name="password">root</property>
    <property name="sqlMode">STRICT_TRANS_TABLES</property>
  </dataSource>

</cobar:schema>

3.server.xml,定义cobar对外统一的数据接口。

  <!-- 用户访问定义,用户名、密码、schema等信息。 -->
    <user name="root">
    <property name="password">root</property>
    <property name="schemas">cppdb</property>
  </user>



cobar升级版:mycat,提供了大连的文档,以及源码。
http://code.taobao.org/svn/openclouddb/

你可能感兴趣的:(使用淘宝中间件cobar实现mysql分库分表)