741057228我QQ 发表于 2016-10-18 07:28:40

使用淘宝中间件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目录,新建并运行查看目录结构如下:
 view plaincopy 



[*]# 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 
 view plaincopy 



[*]<!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法 -->  
[*]<tableRule name="rule1">  
[*]  <rule>  
[*]    <columns>id</columns>  
[*]    <algorithm><!]></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 ,定义数据节点
 view plaincopy 



[*]<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</dataSourceRef>  
[*]    </property>  
[*]  </dataNode>  
[*]  <dataNode name="cppDb2">  
[*]    <property name="dataSource">  
[*]      <dataSourceRef>cppDataSource</dataSourceRef>  
[*]    </property>  
[*]  </dataNode>  
[*]  <dataNode name="cppDb3">  
[*]    <property name="dataSource">  
[*]      <dataSourceRef>cppDataSource</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等信息。 -->
 view plaincopy 



[*]<user name="root">  
[*]<property name="password">root</property>  
[*]<property name="schemas">cppdb</property>  
[*]t;/user>  

  


cobar升级版:mycat,提供了大连的文档,以及源码。
http://code.taobao.org/svn/openclouddb/
  
  转自:http://blog.csdn.net/huoyunshen88/article/details/37927553

plata 发表于 2016-12-12 15:18:19

linux下:wget https://codeload.github.com/alibaba/cobar/zip/master
F:\mycat>mvn compile
F:\mycat>mvn package
请教下,没看明白
页: [1]
查看完整版本: 使用淘宝中间件cobar实现mysql分库分表