Mycat
視頻地址
Mycat
第一章 入門概述
1.1 是什么
Mycat是數據中間件
數據庫中間件
中間件:是一類連接軟件組件和應用的計算機軟件,以便于軟件各部分之間的溝通.
例子:tomcat,web中間件.
數據中間件:連接 java應用程序和數據庫
數據庫中間件對比
數據庫中間件(天上飛的理念,地上落地的實現)
- cobar:阿里團隊開發,已多年無維護更新
- mycat:基于 cobar二次開發 開源社區維護
- OneProxy:不開源的商業中間件
- kingshard:go語言開發,在不斷完善
- Vitess:YouTube生產在使用,不支持 MySQL原生協議
- Atlas: 360團隊基于 mysqlproxy改寫,高并發不穩定
- MaxScale: maxScale是 mariadb研發的中間件
- MySQLRoute: MySQLRoute 是MySQL官方 Oracle公司發布的中間件
Cobar 屬于 阿里 B2B事業群,始于 2008,在阿里服役3年多,接管 3000+ MySQL數據的 shema,集群日處理在線 sql請求50億次以上.由于 Cobar發起人離職,Cobar停止維護.
Mycat 是開源社區在阿里 cobar基礎上進行二次開發,解決了 cobar存在的問題,并且加入了許多新的功能在其中.青出于藍而勝于藍.
OneProxy 基于 MySQL官方 proxy思想利用 c進行開發的,OneProxy是一款商業收費的中間件.舍棄了一些功能,專注在性能和穩定性上.
kingshard 由小團隊用 go語言開發,還需要發展,需要不斷完善.
Vistess 是 YouTube生產在使用,架構很復雜.不支持 MySQL原生協議,使用大量改造成本
Atlas 是 360團隊基于 mysqlproxy改寫,功能還需完善,高并發下不穩定.
MaxSale 是 mariadb(MySQL原作者維護的一個版本)研發的中間件
mycat的官網
http://www.mycat.org.cn/
1.2 干什么的
讀寫分離
數據分片
垂直拆分(分庫),水平拆分(分表),垂直+水平拆分(分庫分表)
多數據源整合
1.3 原理
Mycat 的原理最重要的一個動詞時 "攔截" ,他攔截了用戶發送過來的 sql語句,首先對 sql語句做了一些特定的分析,如分片分析,路由分析,讀寫分離分析,緩存分析等,然后將從 sql發往后端的真是數據庫,并返回的結果做適當的處理,最終返回給用戶.
這種方式把數據庫的分布式從代碼中解耦出來,程序員察覺不出來后臺 使用 Mycat還是 Mysql.
第二章 安裝啟動
2.1 安裝
0. 去官網下載,放到 /opt 目錄下,執行
tar -zxvf Mycat-server-1.6.7.6-release-20210930213049-linux.tar.gz
加壓后即可使用: 解壓縮文件拷貝到 Linux寫 /usr/local/
cp -r mycat /usr/local/
三個配置文件
schema.xml : 定義邏輯庫,表,分片節點等內容
rule.xml : 定義分片規則
server.xml : 定義用戶以及系統相關便令,如端口等.
2.2 啟動
修改配置文件 server.xml
修改用戶信息,與 mysql區分,如下
修改配置文件 schema.xml
刪除 <schema>標簽的表信息 <dataNode>標簽只留一個, <dataHost> 標簽只留一個, <writeHost> <readHost> 只留一對
驗證數據庫的訪問情況
mycat 作為數據中間件要和數據庫部署在不同機器上,所以要驗證遠程訪問情況.
mysql -uroot -proot -h 192.168.217.13 -P3306
mysql -u用戶名 -p密碼 -h ip地址 -P端口號
啟動程序
控制臺: 去 mycat/bin 目錄下執行 ./mycat console
后臺啟動: 去 mycat/bin 目錄下 ./mycat start
六個特殊目錄不需要 加點斜杠的 bin ; usr/bin ; usr/local/bin ; sbin ; usr/sbin ; usr/lcoal/sbin
啟動時可能出現報錯
如果操作系統時 centos6.8,可能會出現域名解析失敗錯誤
可以按照一些步驟解決
用 vim 修改 /etc/hosts 文件,在 127.0.0.1 后面增加你的機器名
修改后重新啟動網絡服務
2.3 登錄
登錄后臺管理窗口
此登錄方式用于管理維護 Mycat
mysql -u用戶 -p密碼 -P 端口號 -h ip地址
登錄數據窗口
此登錄方式用于通過 Mycat查詢數據,我們選擇這種方式訪問 mycat
mysql -u用戶 -p密碼 -P 端口號 -h ip地址
第三章 搭建讀寫分離
我們通過 Mycat 和 Mysql 的主從復制配合搭建數據的讀寫分離,實現 myslq 的高可用性.我們將搭建:
一主一叢,雙主雙從兩種讀寫分離模式
3.1 一主一從
一個主機用于處理所有寫請求,一臺從機負責所有讀請求,架構圖如下
搭建 MySql數據庫主從復制
MySQL 主從復制原理
主機配置
3.2 雙主雙從
第四章 垂直拆分
4.1 如何劃分表
4.2 配置分庫
第五章 水平拆分
5.1 配置分表
總結
- 上一篇: Excel—身份证生日提取
- 下一篇: 音频基础知识及编码原理