日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Mycat配置主从数据-集群搭建

發布時間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 Mycat配置主从数据-集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、讀寫分離mycat

a、 讀寫分離
  讀--》讀操作服務器只負責讀
  寫--》寫操作服務器只負責寫
b、分表分庫
  (微服務)垂直拆分:系統(訂單,用戶)
  mycat研究對象-》水平拆分:訂單(訂單1/訂單2)
  haproxy:搭建多個mycat集群
集群:防止單點故障
  當一個機器宕機了以后,另一個機器會啟作用,進行數據傳輸和備份。

2、原理圖

3、安裝mycat

  a. 解壓文件

tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 

  b.移動到軟件目錄

 mv mycat/ /usr/

  c. 進入/usr/mycat/conf中配置三個文件

Server.xml

  這里是root用戶密碼的設置,同時邏輯分庫表的名字

    <user name="root">
        <property name="password">root</property>
        <property name="schemas">mydb</property>        
    </user>

schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="mydb" checkSQLschema="false" sqlMaxLimit="100">
        <!-- 分表 name是分表  dataNode拆分后的切片的位置  rule拆分規則 -->
        <table name="student" dataNode="dn1,dn2" rule="myrule" />
        
    </schema>    
    <!--datahost設置讀寫分離的地址  database拆分后為mydb01和02-->
    <dataNode name="dn1" dataHost="localhost1" database="mydb01" />
    <dataNode name="dn2" dataHost="localhost1" database="mydb02" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
              writeType="0" dbType="mysql" dbDriver="native" switchType="2"  slaveThreshold="100">
              <!--發送心跳確是否出故障-->
        <heartbeat>show slave status</heartbeat> <!--select user()-->
        <writeHost host="hostM1" url="192.168.209.135:3306" user="root"
                   password="root">
            <readHost host="hostS2" url="192.168.209.137:3306" user="root" password="root" />
        </writeHost>
        
    </dataHost>
</mycat:schema>

部分參數解析

  balance:讀請求的負載均衡 

0:不開啟讀寫分離,所有讀操作都發送到writehost中

1:全部的readhost和stand by writehost都參與讀操作的負載均衡

2:讀請求隨機發送給readhost或writehost

3:讀請求隨機發送給writehost中的readhost

  writeType:寫請求的負載均衡

0:寫請求先發送給schema.xml中的第一個writehost。

當第一個writehost掛掉后給第二個,切換 記錄會被記錄在conf/dnindex.properties

1:寫請求隨機發送到所有的writehost中

  switchType:是否允許讀操作在readhost和writehost中自動切換(解決延遲問題,當從readhost中讀 取數據出現網絡延遲時,自動從writehost中讀取)

-1:不允許

1:允許

2:根據主從同步的狀態,自動選擇是否切換 心跳設置必須為show slave status

rule.xml

這是是算法的區分
    <tableRule name="mod-long">
        <rule>
            <columns>id</columns>
            <algorithm>mod-long</algorithm>
        </rule>
    </tableRule>

下面的算法的實現

<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
<!-- how many data nodes -->
<property name="count">3</property>
</function>

在主從底層數據庫中進行數據參加

create database mydb01; 
create table student(id int(4),name varchar(10));
create database mydb02;
create table student(id int(4),name varchar(10));

啟動mycat

開啟     bin/mycat start 
關閉     bin/mycat stop 
查看狀態    bin/mycat status

登錄mycat

mysql -uroot -proot -P8066 -h(mycat所在服務器ip)

測試

插入數據
select * from student;
insert student (id, name) values (88, 'nihao');

測試思路:

  讀寫分離,讀從主slave中讀,寫從master寫入。

  在master中插入數據,能查詢到兩個庫中的數據。

  在slave中插入數據,由于slave是從數據庫,所以數據不會同步到master,所以從master讀是讀不到的,只有從slave中讀才能得到數據,得到驗證。

  

總結

以上是生活随笔為你收集整理的Mycat配置主从数据-集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。