您的位置:首页 > 数据库 > MySQL

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

2016-04-07 23:14 591 查看
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目录,新建并运行查看目录结构如下:

[html] view
plain copy

[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
plain copy

<!-- 路由规则定义,定义什么表,什么字段,采用什么路由算法 -->  

<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 ,定义数据节点

[html] view
plain copy

<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等信息。 -->

[html] view
plain copy

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: