成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL 主從集群 + mycat 雙節(jié)點 + Keepalived 讀寫分離高可用方案

數據庫 MySQL
今天分享一下讀寫分離使用 MyCAT 版本來實現 MySQL 主從集群與 MyCAT 雙節(jié)點部署,并結合 Keepalived 實現高可用的完整解決方案。

今天分享一下讀寫分離使用 MyCAT 版本來實現 MySQL 主從集群與 MyCAT 雙節(jié)點部署,并結合 Keepalived 實現高可用的完整解決方案。

一、架構設計

1. 場景說明

在大型業(yè)務系統(tǒng)中,數據庫壓力大,為了解決單點瓶頸和讀寫分離問題,采用 MySQL 主從集群和 MyCAT 做數據中間層。為保證 MyCAT 層面的高可用,部署兩個 MyCAT 節(jié)點,利用 Keepalived 做 VIP 浮動 IP,保障服務不中斷。

架構如下:

二、部署環(huán)境規(guī)劃

主機 IP

安裝服務

角色

10.0.0.41

MySQL 主庫 + MyCAT + Keepalived

主節(jié)點(MASTER)

10.0.0.42

MySQL 從庫 + MyCAT + Keepalived

備節(jié)點(BACKUP)

VIP

10.0.0.100

客戶端訪問入口

mysql集群已經部署完成。

三、MyCAT 雙節(jié)點部署

1. 安裝 MyCAT

兩個節(jié)點都需要部署mycat,部署過程一樣。

mycat官網:https://github.com/MyCATApache/Mycat-Server

(1) 安裝java

yum install -y java

(2) 下載并解壓 MyCAT

# 下載mycat
wget https://github.com/MyCATApache/Mycat-Server/releases/download/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
tar -xvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

# 解壓好的文件遷移到/usr/local
mv mycat /usr/local/mycat

(3) 創(chuàng)建 MyCAT 用戶

useradd mycat
chown -R mycat:mycat /usr/local/mycat

(4) 配置環(huán)境變量

vi /etc/profile
# 在尾部添加
export PATH=/usr/local/mycat/bin:$PATH

# 立即生效
source /etc/profile

2. 配置 MyCAT

配置文件路徑:/usr/local/mycat/conf/涉及 3 個主要文件:

  • server.xml — 配置 MyCAT 相關服務
  • schema.xml — 配置數據庫連接、讀寫分離
  • rule.xml — 配置分庫分表規(guī)則(此方案中不涉及)

(1) server.xml 配置

路徑:/usr/local/mycat/conf/server.xml

<?xml versinotallow="1.0" encoding="UTF-8"?>
<mycat:server xmlns:mycat="http://mycat.io/">
    <user name="root">
        <property name="password">123456</property>
        <property name="schemas">testdb</property>
    </user>
</mycat:server>

客戶端通過 MyCAT 連接時,使用 root/123456 登錄。

(2) schema.xml 配置

路徑:/usr/local/mycat/conf/schema.xml

<?xml versinotallow="1.0" encoding="UTF-8"?>
<mycat:schema xmlns:mycat="http://mycat.io/">
    <!-- 定義邏輯庫 -->
    <schema name="testdb" checkSQLschema="false" sqlMaxLimit="100">
        <table name="*" dataNode="dn1" />
    </schema>

    <!-- 數據節(jié)點配置 -->
    <dataNode name="dn1" dataHost="localhost" database="testdb" />

    <!-- 主從數據庫節(jié)點配置 -->
    <dataHost name="localhost" maxCnotallow="1000" minCnotallow="10" balance="1" writeType="0" dbType="mysql" dbDriver="native">
        <heartbeat>select 1</heartbeat>

        <!-- 主庫 -->
        <writeHost host="hostM1" url="10.0.0.41:3306" user="root" password="123456">
            <!-- 從庫 -->
            <readHost host="hostS1" url="10.0.0.42:3306" user="root" password="123456" />
        </writeHost>
    </dataHost>
</mycat:schema>

關鍵配置說明

配置項

說明

balance="1"

配置讀寫分離,讀操作自動分發(fā)到從庫

writeType="0"

只允許向主庫寫入數據

writeHost

主庫配置

readHost

從庫配置

(3) 啟動 MyCAT

cd /usr/local/mycat/bin
./mycat start

(4) 查看 MyCAT 日志

tail -f /usr/local/mycat/logs/wrapper.log

(5) 查看狀態(tài)

mycat status

兩個節(jié)點配置完mycat后,接下來配置keepalived。

四、配置 Keepalived 高可用

1. 安裝 Keepalived

yum install keepalived -y

2. 配置 Keepalived

(1) 主節(jié)點 /etc/keepalived/keepalived.conf

global_defs {
   router_id MyCAT_1
}

vrrp_script chk_mycat {
    script "/usr/local/mycat/bin/check_mycat.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33  # 確保網卡名正確
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.100
    }
    track_script {
        chk_mycat
    }
}

(2) 備節(jié)點 /etc/keepalived/keepalived.conf

global_defs {
   router_id MyCAT_2
}

vrrp_script chk_mycat {
    script "/usr/local/mycat/bin/check_mycat.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.100
    }
    track_script {
        chk_mycat
    }
}

(3) 健康檢查腳本

vi /usr/local/mycat/bin/check_mycat.sh
#!/bin/bash

MYCAT_PORT=8066

if ! netstat -ntlp | grep $MYCAT_PORT > /dev/null
then
    echo "MyCAT is down, stopping keepalived"
    systemctl stop keepalived
fi

(4) 授權執(zhí)行權限

chmod +x /usr/local/mycat/bin/check_mycat.sh

3. 啟動 Keepalived 服務

# 啟動keepalived并設置開機自啟動
systemctl enable --now keepalived

五、客戶端訪問

客戶端或應用通過 VIP(10.0.0.100)和端口 8066 訪問:

mysql -h 10.0.0.100 -P 8066 -uroot -p123456

高可用實現:

  • 默認情況下,VIP 在主節(jié)點上,MyCAT 監(jiān)聽 8066 端口
  • 如果主節(jié)點的 MyCAT 異常,VIP 會自動漂移到備節(jié)點

責任編輯:趙寧寧 來源: 運維李哥不背鍋
相關推薦

2018-04-08 15:20:15

數據庫MySQL主從復制

2022-04-25 08:03:57

MySQL中間件MyCat

2019-12-24 14:28:00

KeepalivedNginxTomcat

2023-03-08 18:00:00

主從讀寫分離

2020-04-23 15:08:41

SpringBootMyCatJava

2022-03-24 12:15:50

MySQL數據庫讀寫分離

2014-05-30 13:35:21

MySQL Clust架構

2019-05-13 15:00:14

MySQLMyCat數據庫

2015-10-21 12:58:58

keepalived集群Linux

2019-10-09 16:02:16

NginxKeepalivedLvs

2021-05-20 06:49:45

MongoDB高可用數據庫

2022-02-27 14:37:53

MySQL主備數據

2011-10-10 09:47:32

HAProxy負載均衡Keepalived

2020-12-08 06:17:11

MycatMySQL分離

2022-07-22 20:00:01

高可用路由

2010-12-08 08:57:11

keepalivedMySQL-HA

2023-05-15 08:20:56

2019-08-27 15:56:44

MySQL 互聯網數據庫

2023-11-01 07:55:44

K8sKubernetes

2018-01-12 14:20:37

數據庫MySQL高可用架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品无码专区在线观看 | 久久久综合精品 | 中文字幕亚洲在线 | 在线观看日本高清二区 | 在线精品一区二区三区 | 久在线| 在线免费小视频 | 狠狠干狠狠插 | 久久久久网站 | 久久久久久免费毛片精品 | 伊人二区 | 91视频三区| 亚洲网址 | 99re6在线视频 | 国产激情一区二区三区 | 夜色www国产精品资源站 | 亚洲成人免费观看 | 亚洲国产一区二区三区, | 国产精品美女久久久久久免费 | 欧美激情视频一区二区三区免费 | 国产黄色在线观看 | 日韩欧美视频免费在线观看 | 国产高清精品一区二区三区 | 日韩在线免费视频 | 看真人视频一级毛片 | 黄网免费 | 精品美女 | 黄色网址在线播放 | 欧美日韩一 | 亚洲精品日韩综合观看成人91 | 欧美性一区二区三区 | 麻豆久久久久久 | 自拍偷拍第一页 | 国产偷录视频叫床高潮对白 | 色综合久久久久 | 日韩视频精品 | 中文字幕一区在线 | 日韩中文在线观看 | 欧美看片 | 亚洲成人高清 | 欧美日韩三级视频 |