mycat 多個邏輯庫加讀寫分離


上3篇筆記主要記錄了,讀寫分離,單庫分表,分庫分表

這次改動了下,實現了分庫分表以及讀寫分離,基於多個邏輯庫,先看配置文件

server.xml

<user name="root" defaultAccount="true">
                <property name="password">123456</property>
                <property name="schemas">app_house,TESTDB</property>

最后一行,定義root用戶可以訪問2個邏輯數據庫,你需要幾個就用逗號隔開,這個需要和schema.xml里的邏輯庫對應

來看下schema.xml的配置

<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
        <schema name="app_house" checkSQLschema="false" sqlMaxLimit="100">
         <!--  <table name="t_order" primaryKey="id" autoIncrement="true" subTables="t_order$1-3" dataNode="dn1" rule="mod-long" />
               <table name="t_user" primaryKey="id" autoIncrement="true"  dataNode="dn1" /> -->
          <table name="t_order" primaryKey="id" autoIncrement="true"  dataNode="dn1,dn2" rule="mod-long" />
        </schema>

        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn3"> </schema>

        <dataNode name="dn3" dataHost="mycluster" database="testdb4" />
        <dataNode name="dn1" dataHost="mycluster" database="testdb2" />
        <dataNode name="dn2" dataHost="mycluster" database="testdb3" />

        <dataHost name="mycluster" maxCon="1000" minCon="10" balance="1"  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
          <heartbeat>select user()</heartbeat>
          <!-- can have multi write hosts -->
          <writeHost host="86_M" url="172.17.3.86:3306" user="root" password="123456">
            <!-- can have multi read hosts -->
          <readHost host="177_S" url="172.17.3.177:3306" user="root" password="123456" />
          </writeHost>
        </dataHost>

</mycat:schema>

定義了邏輯庫app_house和邏輯庫TESTDB

app_house使用了dn1和dn2對表t_order進行分庫分表

TESTDB使用了dn3來進行讀寫分離,后端真實庫為testdb4

配置文件不麻煩,理解了前三篇配置后這個很容易看懂

你定義了幾個邏輯庫就需要幾個schema標簽,每個邏輯庫對應相應的dataNode,每個dataNode對應相應的真實物理機數據庫

至於dataHost可以復用

以上配置文件實現了,對一個表的分庫分表,對一個庫的讀寫分離,在一個配置文件里實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM