大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

Mycat搭建MySQL集群

更新時(shí)間:2021-09-17 10:46:36 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1787次

Mycat

MyCAT為數(shù)據(jù)庫中間件產(chǎn)品,支持mysql集群,提供高可用性數(shù)據(jù)分片集群。

分片

分片簡(jiǎn)單來說,就是指通過某種特定的條件,將我們存放在同一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)分散存放到多個(gè)數(shù)據(jù)庫(主機(jī))上面,以達(dá)到分散單臺(tái)設(shè)備負(fù)載的效果

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

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

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

安裝Mycat

到官方下載

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

選擇windows版的

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

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

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

當(dāng)我們需要將數(shù)據(jù)平均分在幾個(gè)分區(qū)中,需要使用一致性hash規(guī)則

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

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

rule指定對(duì)id列進(jìn)行分片,算法為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><!-- 默認(rèn)是0 -->
        <property name="count">3</property><!-- 要分片的數(shù)據(jù)庫節(jié)點(diǎn)數(shù)量,必須指定,否則沒法分片 -->
        <property name="virtualBucketTimes">160</property><!-- 一個(gè)實(shí)際的數(shù)據(jù)庫節(jié)點(diǎn)被映射為這么多虛擬節(jié)點(diǎn),默認(rèn)是160倍,也就是虛擬節(jié)點(diǎn)數(shù)是物理節(jié)點(diǎn)數(shù)的160倍 -->
        <!-- <property name="weightMapFile">weightMapFile</property> 節(jié)點(diǎn)的權(quán)重,沒有指定權(quán)重的節(jié)點(diǎn)默認(rèn)是1。以properties文件的格式填寫,以從0開始到count-1的整數(shù)值也就是節(jié)點(diǎn)索引為key,以節(jié)點(diǎn)權(quán)重值為值。所有權(quán)重值必須是正整數(shù),否則以1代替 -->
        <!-- <property name="bucketMapPath">/etc/mycat/bucketMapPath</property> 
            用于測(cè)試時(shí)觀察各物理節(jié)點(diǎn)與虛擬節(jié)點(diǎn)的分布情況,如果指定了這個(gè)屬性,會(huì)把虛擬節(jié)點(diǎn)的murmur hash值與物理節(jié)點(diǎn)的映射按行輸出到這個(gè)文件,沒有默認(rèn)值,如果不指定,就不會(huì)輸出任何東西 -->
    </function>

接下來我們就使用該算法進(jìn)行分片

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

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--邏輯數(shù)據(jù)庫TESTDB-->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <!--邏輯數(shù)據(jù)表tb_test--> 
        <!--rule="sharding-by-murmur"  使用隨機(jī)拆分 -->
        <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" 物理數(shù)據(jù)庫 -->
        <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這個(gè)邏輯數(shù)據(jù)庫即可,

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

啟動(dòng)mycat

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

出現(xiàn) 如下信息即為啟動(dòng)成功

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

首先使用本地?cái)?shù)據(jù)創(chuàng)建db1 db2 db3 三個(gè)數(shù)據(jù)庫

創(chuàng)建表和數(shù)據(jù)腳本如下

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

運(yùn)行sql腳本后,可以看到

邏輯數(shù)據(jù)庫如下

物理數(shù)據(jù)庫如下

查看db1,db2,db3各個(gè)物理數(shù)據(jù)庫的記錄如下

可以看到mycat已經(jīng)幫我們進(jìn)行了水平拆分,當(dāng)數(shù)據(jù)量大時(shí),各個(gè)數(shù)據(jù)庫的行數(shù)就趨于相等。

想了解更多關(guān)于Mycat的相關(guān)知識(shí),不妨來關(guān)注動(dòng)力節(jié)點(diǎn)Mycat教程,里面有更多的知識(shí)點(diǎn)供大家學(xué)習(xí)參考。在Java視頻教程頁面中也有相關(guān)配套視頻可以免費(fèi)下載學(xué)習(xí),希望對(duì)大家能夠有所幫助。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美人zoxxxx另类 | 国产区在线观看视频 | 国产精品嫩草影院99av视频 | 欧美理伦 | 久热久操 | 一级爱| 久久久久久久久亚洲 | 四虎影院中文字幕 | 成人短视频视频在线观看网站 | 天天干视频网站 | 成人免费毛片视频 | 欧美性猛交99久久久久99 | 狠狠色狠狠色综合婷婷tag | 一区二区视频在线观看免费的 | 国产看片视频 | 四虎国产成人永久精品免费 | 亚洲国产精品第一区二区 | 韩国色三级伦不卡高清在线观看 | 精品中文字幕一区在线 | 日韩精品你懂的在线播放 | 亚洲高清专区 | 欧美精品香蕉在线观看网 | 精品久久久久久亚洲 | 四虎新地址4hu 你懂的 | 韩国亚洲伊人久久综合影院 | 日本在线亚州精品视频在线 | 日本一级在线观看 | 久热草视频| 亚洲一区在线日韩在线深爱 | 男人的天堂欧美精品色偷偷 | 草草免费观看视频在线 | 人人爱天天做夜夜爽88 | 久久精品国产99国产精品亚洲 | 国产男女爱视频在线观看 | 女人一级毛片免费观看 | 亚洲高清在线mv | 老子午夜精品我不卡影院 | 麻豆一区二区三区在线观看 | 91国内精品在线 | 日本综合| 成人久久久久久 |