您的足迹:首页 > MySQL >使用淘宝中间件cobar实现mysql分库分表

使用淘宝中间件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 

[html] view plaincopy

  1. <!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法 -->  
  2. <tableRule name="rule1">  
  3.   <rule>  
  4.     <columns>id</columns>  
  5.     <algorithm><![CDATA[ func1(${id}) ]]></algorithm>  
  6.   </rule>  
  7. </tableRule>  
  8.   
  9. <!-- 路由函数定义 -->  
  10. <function name="func1" class="com.alibaba.cobar.route.function.PartitionByLong">  
  11.   <property name="partitionCount">2</property>  
  12.   <property name="partitionLength">512</property>  
  13. </function>  

  
2.schema.xml ,定义数据节点

[html] view plaincopy

  1. <cobar:schema xmlns:cobar="http://cobar.alibaba.com/">  
  2.   
  3.   <!-- schema定义 -->  
  4.   <schema name="cppdb" dataNode="cppDb1">  
  5.     <table name="tb2" dataNode="cppDb2,cppDb3" rule="rule1" />  
  6.   </schema>  
  7.   
  8.   <!-- 数据节点定义,数据节点由数据源和其他一些参数组织而成。-->  
  9.   <dataNode name="cppDb1">  
  10.     <property name="dataSource">  
  11.       <dataSourceRef>cppDataSource[0]</dataSourceRef>  
  12.     </property>  
  13.   </dataNode>  
  14.   <dataNode name="cppDb2">  
  15.     <property name="dataSource">  
  16.       <dataSourceRef>cppDataSource[1]</dataSourceRef>  
  17.     </property>  
  18.   </dataNode>  
  19.   <dataNode name="cppDb3">  
  20.     <property name="dataSource">  
  21.       <dataSourceRef>cppDataSource[2]</dataSourceRef>  
  22.     </property>  
  23.   </dataNode>  
  24.   
  25.   <!-- 数据源定义,数据源是一个具体的后端数据连接的表示。-->  
  26.   <dataSource name="cppDataSource" type="mysql">  
  27.     <property name="location">  
  28.       <location>172.22.14.7:3306/cpp1</location>  
  29.       <location>172.22.14.7:3306/cpp2</location>  
  30.       <location>172.22.14.7:3306/cpp3</location>  
  31.     </property>  
  32.     <property name="user">root</property>  
  33.     <property name="password">root</property>  
  34.     <property name="sqlMode">STRICT_TRANS_TABLES</property>  
  35.   </dataSource>  
  36.   
  37. </cobar:schema>  


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

  <!-- 用户访问定义,用户名、密码、schema等信息。 -->

[html] view plaincopy

  1. <user name="root">  
  2. <property name="password">root</property>  
  3. <property name="schemas">cppdb</property>  
  4. t;/user>  




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

本博客所有文章如无特别注明均为原创。作者:数据为王复制或转载请以超链接形式注明转自 数据为王
原文地址《使用淘宝中间件cobar实现mysql分库分表

相关推荐


  • blogger

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)