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

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

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

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

一、架構(gòu)設(shè)計

1. 場景說明

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

架構(gòu)如下:

二、部署環(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集群已經(jīng)部署完成。

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

1. 安裝 MyCAT

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

mycat官網(wǎng):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 相關(guān)服務
  • schema.xml — 配置數(shù)據(jù)庫連接、讀寫分離
  • 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>

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

    <!-- 主從數(shù)據(jù)庫節(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>

關(guān)鍵配置說明

配置項

說明

balance="1"

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

writeType="0"

只允許向主庫寫入數(shù)據(jù)

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  # 確保網(wǎng)卡名正確
    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) 授權(quán)執(zhí)行權(quán)限

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

3. 啟動 Keepalived 服務

# 啟動keepalived并設(shè)置開機自啟動
systemctl enable --now keepalived

五、客戶端訪問

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

mysql -h 10.0.0.100 -P 8066 -uroot -p123456

高可用實現(xiàn):

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

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

2018-04-08 15:20:15

數(shù)據(jù)庫MySQL主從復制

2022-04-25 08:03:57

MySQL中間件MyCat

2019-12-24 14:28:00

KeepalivedNginxTomcat

2023-03-08 18:00:00

主從讀寫分離

2022-03-24 12:15:50

MySQL數(shù)據(jù)庫讀寫分離

2020-04-23 15:08:41

SpringBootMyCatJava

2019-05-13 15:00:14

MySQLMyCat數(shù)據(jù)庫

2015-10-21 12:58:58

keepalived集群Linux

2014-05-30 13:35:21

MySQL Clust架構(gòu)

2022-02-27 14:37:53

MySQL主備數(shù)據(jù)

2021-05-20 06:49:45

MongoDB高可用數(shù)據(jù)庫

2019-10-09 16:02:16

NginxKeepalivedLvs

2022-07-22 20:00:01

高可用路由

2011-10-10 09:47:32

HAProxy負載均衡Keepalived

2020-12-08 06:17:11

MycatMySQL分離

2023-11-01 07:55:44

K8sKubernetes

2018-01-12 14:20:37

數(shù)據(jù)庫MySQL高可用架構(gòu)

2023-05-15 08:20:56

2010-12-08 08:57:11

keepalivedMySQL-HA

2019-08-27 15:56:44

MySQL 互聯(lián)網(wǎng)數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精精国产xxxx视频在线播放 | 欧美精品久久久 | 2019天天操 | 日本一卡精品视频免费 | 久久国| 最新国产精品精品视频 | 日韩av成人在线观看 | 国产成人免费视频网站视频社区 | 精品国产乱码久久久久久中文 | 国产精品久久久久久婷婷天堂 | 欧美日韩在线成人 | 精品国产女人 | 久草在线在线精品观看 | 91久久综合 | 久久国产精99精产国高潮 | 日日av | 四虎影院免费在线 | 免费黄色a级毛片 | 日韩a视频 | 羞羞视频在线观看网站 | 在线视频一区二区 | 日韩一区二区在线视频 | 国产精品成人国产乱一区 | 国产999精品久久久久久绿帽 | 91在线影院 | 成人免费观看男女羞羞视频 | 国产一区在线免费观看 | 午夜影院在线免费观看视频 | 午夜天堂精品久久久久 | 草久久久 | 国产精品一区二区三区四区 | www.男人天堂.com | 91社区在线观看高清 | 日韩在线观看一区 | 国产福利精品一区 | 二区三区视频 | 国产欧美日韩一区二区三区在线观看 | 国产精品99999| 黄色成人在线网站 | 国产成人综合在线 | 精品国产91|