程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Cobar分布式數據庫的應用與實踐,cobar數據庫

Cobar分布式數據庫的應用與實踐,cobar數據庫

編輯:MySQL綜合教程

Cobar分布式數據庫的應用與實踐,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

 

總結:

    現在的技術感覺越做越薄,多關注開源的解決方案,卻成為必要的一項工作技能了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved