隨著專案增長,資料量與資料表成倍增加,單點資料庫已無法滿足擴展需求。為提供透明化的資料庫存取、利於專案擴展維護,急需分散式資料庫解決方案。
綜合考量開源、成熟度、滿足日常需求,最終選擇 Cobar。
下載地址:Cobar 官方 Wiki。Cobar 基於 Java,需先安裝 JRE,解壓後執行 startup.sh 啟動。
server.xml - 伺服器配置,定義連線用戶、密碼、對應 schema:
<user name="mysql">
<property name="password">mysql</property>
<property name="schemas">data_acquisition_server</property>
</user>
schema.xml - 資料節點與資料表拆分配置:
<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>
rule.xml - 分片演算法配置,以 id 欄位為例,使用 PartitionByLong:
<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>
db_data_acquisition_master、_chunk1、_chunk2task、task_source、task_upload 分別建於 chunk1、chunk2id 且不可為自增技術更新迭代快,持續關注並掌握開源解決方案已成為必要職場技能。Cobar 以其簡單易用、生產驗證,成為中小型專案分散式資料庫的優質選擇。