zoukankan      html  css  js  c++  java
  • Cobar分布式数据库的应用与实践

    最新文章:看我如何快速学习.Net(高可用数据采集平台)高并发数据采集的架构应用(Redis的应用)

    问题点:

          随着项目的增长,数据和数据表也成倍的增长,普通的单点数据库已经无法满足日常的增长的需要。为了能够给开发者提供透明化的数据库应用,也为了有益于项目的扩展、维护和应用,迫切需要分布式数据库的解决方案。

    解决方案:

       1.  Mysql Cluster :Mysql官方提供分布式集群的解决方案之一、具有较强的权威性。

       2. Cobar: Taobao提供的分布式数据库的解决方案,经过一定的实践证明、简单易用,并且可以自定义分割算法。

       3. 爱可生: MySQL分布式集群服务框架, 国内领先的开源数据库软件、数据平台整体解决方案和服务提供商。

       4. Percona XtraDB Cluster 5.6: Percona提供,基于Mysql的另一分支优化过的数据库集群的解决方案。

       5. 以及其它分布式数据库解决方案: 新浪、MySQL federated 引擎、Amoeba等。

       基于以上较多的分布式解决方案,还是选择了淘宝的Cobar、开源而且经过实践证明已经足够满足日常的需要。


    配置和应用:

         1.下载 :https://github.com/alibaba/cobar/wiki

        2. 安装:1). Cobar是基于Java开发的分布式数据库应用,所以安装Cobar首先要安装JAVA JRE。

                   2).  解压,拷贝过去,运行startup.sh即可。

        3.配置:

               1)Server.xml 服务器配置

    <user name="mysql">
        <property name="password">mysql</property>
        <property name="schemas">data_acquisition_server</property>
      </user>

    连接用户名、密码配置,客户端连接登入验证。schemas 主要对应schema.xml的定义。

              2) Schema.xml 数据节点、数据表拆分配置

    复制代码
    <!-- schema定义 -->
      <schema name="data_acquisition_server" dataNode="dnDataAcquisitionMaster">
        <table name="task" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
        <table name="task_upload" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
        <table name="task_source" dataNode="dnDataAcquisitionChunk1,dnDataAcquisitionChunk2" rule="rule1" />
      </schema>
    
      <!-- 数据节点定义,数据节点由数据源和其他一些参数组织而成。-->
      <dataNode name="dnDataAcquisitionMaster">
        <property name="dataSource">
          <dataSourceRef>dsServer[0]</dataSourceRef>
        </property>
      </dataNode>
      <dataNode name="dnDataAcquisitionChunk1">
        <property name="dataSource">
          <dataSourceRef>dsServer[1]</dataSourceRef>
        </property>
      </dataNode>
      <dataNode name="dnDataAcquisitionChunk2">
        <property name="dataSource">
          <dataSourceRef>dsServer[2]</dataSourceRef>
        </property>
      </dataNode>
    
      <!-- 数据源定义,数据源是一个具体的后端数据连接的表示。-->
      <dataSource name="dsServer" type="mysql">
        <property name="location">
          <location>127.0.0.1:3306/db_data_acquisition_master</location>
          <location>127.0.0.1:3306/db_data_acquisition_chunk1</location>
          <location>127.0.0.1:3306/db_data_acquisition_chunk2</location>
        </property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="sqlMode">STRICT_TRANS_TABLES</property>
      </dataSource>
    复制代码

             3) 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>
    复制代码

             4) 数据表创建

       数据库:db_data_acquisition_master、db_data_acquisition_chunk1、db_data_acquisition_chunk2

       数据表:1)db_data_acquisition_chunk1:task、task_source、task_upload

                 2)db_data_acquisition_chunk2:task、task_source、task_upload

      当前的拆分规则、所有的表必需要有id但不能是自增长的。

       4 客户端连接

              可以使用任一Mysql连接工具进行连接,端口号为:8066

    总结:

        现在的技术感觉越做越薄,多关注开源的解决方案,却成为必要的一项工作技能了。

    我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他 们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其 实我是一个程序员
  • 相关阅读:
    解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
    React 与 React-Native 使用同一个 meteor 后台
    解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
    一行命令更新所有 npm 依赖包
    swift学习笔记
    IOS语言总结
    focusSNS学习笔记
    别小看锤子,老罗真的很认真
    windowsphone开发页面跳转到另一个dll中的页面
    【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
  • 原文地址:https://www.cnblogs.com/kms1989/p/5484555.html
Copyright © 2011-2022 走看看