黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Mycat搭建MySQL集群

Mycat搭建MySQL集群

更新時間:2021-09-17 10:46:36 來源:動力節點 瀏覽1811次

Mycat

MyCAT為數據庫中間件產品,支持mysql集群,提供高可用性數據分片集群。

分片

分片簡單來說,就是指通過某種特定的條件,將我們存放在同一個數據庫中的數據分散存放到多個數據庫(主機)上面,以達到分散單臺設備負載的效果

數據的切分(Sharding)根據其切分規則的類型,可以分為兩種切分模式。

(1)一種是按照不同的表(或者Schema)來切分到不同的數據庫(主機)之上,這種切分可以稱之為數據的垂直(縱向)切分

(2)另外一種則是根據表中的數據的邏輯關系,將同一個表中的數據按照某種條件拆分到多臺數據庫(主機)上面,這種切分稱之為數據的水平(橫向)切分。

安裝Mycat

到官方下載

http://dl.mycat.io/1.6-RELEASE/

選擇windows版的

Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz

解壓下載的壓縮包,就安裝在D:\server\mycat

接下類介紹mycat的使用規則,為了簡單起見,就從分片使用最多的算法,一致性哈希算法說起

當我們需要將數據平均分在幾個分區中,需要使用一致性hash規則

查看D:\server\mycat\conf\rule.xml

tableRule的name配置了使用的算法函數,函數也把它復制在下面

rule指定對id列進行分片,算法為murmur

    <tableRule name="sharding-by-murmur">
        <rule>
            <columns>id</columns>
            <algorithm>murmur</algorithm>
        </rule>
    </tableRule>
    <function name="murmur"
        class="io.mycat.route.function.PartitionByMurmurHash">
        <property name="seed">0</property><!-- 默認是0 -->
        <property name="count">3</property><!-- 要分片的數據庫節點數量,必須指定,否則沒法分片 -->
        <property name="virtualBucketTimes">160</property><!-- 一個實際的數據庫節點被映射為這么多虛擬節點,默認是160倍,也就是虛擬節點數是物理節點數的160倍 -->
        <!-- <property name="weightMapFile">weightMapFile</property> 節點的權重,沒有指定權重的節點默認是1。以properties文件的格式填寫,以從0開始到count-1的整數值也就是節點索引為key,以節點權重值為值。所有權重值必須是正整數,否則以1代替 -->
        <!-- <property name="bucketMapPath">/etc/mycat/bucketMapPath</property> 
            用于測試時觀察各物理節點與虛擬節點的分布情況,如果指定了這個屬性,會把虛擬節點的murmur hash值與物理節點的映射按行輸出到這個文件,沒有默認值,如果不指定,就不會輸出任何東西 -->
    </function>

接下來我們就使用該算法進行分片

在D:\server\mycat\conf\schema.xml中,為了清晰起見,把配置信息的意思注釋在配置文件中

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--邏輯數據庫TESTDB-->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <!--邏輯數據表tb_test--> 
        <!--rule="sharding-by-murmur"  使用隨機拆分 -->
        <table name="tb_test" dataNode="dn1,dn2,dn3"
        rule="sharding-by-murmur" />
    </schema>
    <dataNode name="dn1" dataHost="localhost1" database="db1" />
    <dataNode name="dn2" dataHost="localhost1" database="db2" />
    <dataNode name="dn3" dataHost="localhost1" database="db3" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- host="hostM1" 物理數據庫 -->
        <writeHost host="hostM1" url="127.0.0.1:3306" user="root"
                   password="123">
        </writeHost>
    </dataHost>
</mycat:schema>

接下來配置中間件

在 D:\server\mycat\conf\server.xml中,配置連接mycat的用戶密碼

我們只需要連接mycat這個邏輯數據庫即可,

<!--邏輯數據庫的用戶密碼 端口為8066-->
    <user name="root">
        <property name="password">123</property>
        <property name="schemas">TESTDB</property>
    </user>

啟動mycat

在cmdD:\server\mycat\bin\startup_nowrap.bat

出現 如下信息即為啟動成功

接下來使用mysql客戶端連接mycat

首先使用本地數據創建db1 db2 db3 三個數據庫

創建表和數據腳本如下

CREATE TABLE tb_test (
  id BIGINT(20) NOT NULL,
  title VARCHAR(100) NOT NULL ,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8 
INSERT INTO tb_test(ID,TITLE) VALUES(114,'goods1');
INSERT INTO tb_test(ID,TITLE) VALUES(225,'goods2');
INSERT INTO tb_test(ID,TITLE) VALUES(3524,'goods3');
INSERT INTO tb_test(ID,TITLE) VALUES(331,'goods1');
INSERT INTO tb_test(ID,TITLE) VALUES(215,'goods2');
INSERT INTO tb_test(ID,TITLE) VALUES(344,'goods3');
SELECT ID,TITLE FROM tb_test

運行sql腳本后,可以看到

邏輯數據庫如下

物理數據庫如下

查看db1,db2,db3各個物理數據庫的記錄如下

可以看到mycat已經幫我們進行了水平拆分,當數據量大時,各個數據庫的行數就趨于相等。

想了解更多關于Mycat的相關知識,不妨來關注動力節點Mycat教程,里面有更多的知識點供大家學習參考。在Java視頻教程頁面中也有相關配套視頻可以免費下載學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 美女国内精品自产拍在线播放 | 欧美色成人tv在线播放 | 国产 日韩 欧美 综合 | 特级一级毛片视频免费观看 | 亚洲成a人片 | 国产黄色小视频网站 | 国产日韩亚洲不卡高清在线观看 | 日日摸夜夜添夜夜添一区二区 | 国产r67194吃奶视频 | 国产精品日韩欧美一区二区三区 | 美女一级ba大片免色无遮住 | 国产成人精品亚洲77美色 | 黄色大片视频网站 | 一区精品麻豆经典 | 成人免费黄网站 | 成人免费视频观看无遮挡 | yellow网站在线观看 | 国产h在线 | 色片在线 | 日韩一级一片 | 欧美乱一级在线观看 | 又色又爽又黄的三级视频在线观看 | 国内福利视频 | 最近播放的好看hd | 五月婷婷开心综合 | 久久综合狠狠综合久久综合88 | 欧美一区亚洲二区 | 亚洲综合激情六月婷婷在线观看 | 日本黄三级 | 簧片免费视频 | 亚洲一区二区高清 | 在线观看深夜 | 欧美日韩国产成人精品 | 天天干天天干天天干天天干天天干 | 人人做天天爱夜夜爽中字 | 欧美大胆一级视频 | 狠狠色噜噜狠狠狠狠97 | 一本久道久久综合 | 农村寡妇一级毛片免费播放 | 国产91精品系列在线观看 | 性欧美乱又伦 |