站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        本篇文章給大家介紹了關(guān)于MySQL讀寫分離的相關(guān)知識(shí),希望對(duì)大家有幫助。

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        MySQL 讀寫分離的概述

        • MySQL 作為目前世界上使用最廣泛的免費(fèi)數(shù)據(jù)庫,相信所有從事系統(tǒng)運(yùn)維的工程師都一定接觸過。

        • 在實(shí)際的生產(chǎn)環(huán)境中,由單臺(tái) MySQL 作為獨(dú)立的數(shù)據(jù)庫是完全不能滿足實(shí)際需求的,無論是在安全性,高可用性以及高并發(fā)等各個(gè)方面。

        • 因此,一般來說都是通過主從復(fù)制(Master-Slave)的方式來同步數(shù)據(jù),再通過讀寫分離(MySQL-Proxy/Amoeba)來提升數(shù)據(jù)庫的并發(fā)負(fù)載能力進(jìn)行部署與實(shí)施。

        讀寫分離工作原理

        • 基本的原理是:

        • 主數(shù)據(jù)庫處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE)

        • 從數(shù)據(jù)庫處理 SELECT 查詢操作

        • 數(shù)據(jù)庫復(fù)制被用來把事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫。

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        為什么要讀寫分離

        • 面對(duì)越來越大的訪問壓力,單臺(tái)的服務(wù)器的性能成為瓶頸,需要分擔(dān)負(fù)載

        • 主從只負(fù)責(zé)各自的寫和讀,極大程度的緩解 X(寫)鎖和 S(讀)鎖爭用

        • 從庫可配置 myisam 引擎,提升查詢性能以及節(jié)約系統(tǒng)開銷

        • 增加冗余,提高可用性

        實(shí)現(xiàn)讀寫分離的方式

        • 一般有兩種方式實(shí)現(xiàn)
        • 應(yīng)用程序?qū)訉?shí)現(xiàn),網(wǎng)站的程序?qū)崿F(xiàn)
        • 應(yīng)用程序?qū)訉?shí)現(xiàn)指的是在應(yīng)用程序內(nèi)部及連接器中實(shí)現(xiàn)讀寫分離

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        • 優(yōu)點(diǎn):

        • 應(yīng)用程序內(nèi)部實(shí)現(xiàn)讀寫分離,安裝既可以使用

        • 減少一定部署難度

        • 訪問壓力在一定級(jí)別以下,性能很好

        • 缺點(diǎn):

        • 架構(gòu)一旦調(diào)整,代碼要跟著變

        • 難以實(shí)現(xiàn)高級(jí)應(yīng)用,如自動(dòng)分庫,分表

        • 無法適用大型應(yīng)用場景

        中間件層實(shí)現(xiàn):

        • 中間件層實(shí)現(xiàn)是指在外部中間件程序?qū)崿F(xiàn)讀寫分離

        • 常見的中間件程序

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        • Cobar:

        • 阿里巴巴 B2B 開發(fā)的關(guān)系型分布式系統(tǒng),管理將近 3000 個(gè) MySQL 實(shí)例。 在阿里經(jīng)受住了考驗(yàn),后面由于作者的走開的原因 cobar 沒有人維護(hù) 了,阿里也開發(fā)了 tddl 替代 cobar。

        • MyCAT:

        • 社區(qū)愛好者在阿里 cobar 基礎(chǔ)上進(jìn)行二次開發(fā),解決了 cobar 當(dāng)時(shí)存在的一些問題,并且加入了許多新的功能在其中。目前 MyCAT 社區(qū)活躍度很高,已經(jīng)有一些公司在使用 MyCAT。總體來說支持度比

        • 較高,也會(huì)一直維護(hù)下去。

        • OneProxy:

        • 數(shù)據(jù)庫界大牛,前支付寶數(shù)據(jù)庫團(tuán)隊(duì)領(lǐng)導(dǎo)樓總開發(fā),基于 mysql 官方 的 proxy 思想利用 c 進(jìn)行開發(fā)的,OneProxy 是一款商業(yè)收費(fèi)的中間件,樓總舍去了一些功能點(diǎn),專注在性能和穩(wěn)定性上。有人測

        • 試過說在高并發(fā)下很穩(wěn)定。

        • Vitess:

        • 這個(gè)中間件是 Youtube 生產(chǎn)在使用的,但是架構(gòu)很復(fù)雜。 與以往中間件不同,使用 Vitess 應(yīng)用改動(dòng)比較大,要使用他提供語言的 API 接口,我們可以借鑒他其中的一些設(shè)計(jì)思想。

        • Kingshard:

        • Kingshard 是前 360Atlas 中間件開發(fā)團(tuán)隊(duì)的陳菲利用業(yè)余時(shí)間 用 go 語言開發(fā)的,目前參與開發(fā)的人員有 3 個(gè)左右, 目前來看還不是成熟可以使用的產(chǎn)品,需要在不斷完善。

        • Atlas:

        • 360 團(tuán)隊(duì)基于 mysql proxy 把 lua 用 C 改寫。原有版本是支持分表, 目前已經(jīng)放出了分庫分表版本。在網(wǎng)上看到一些朋友經(jīng)常說在高并發(fā)下會(huì)經(jīng)常掛掉,如果大家要使用需要提前做好測試。

        • MaxScale 與 MySQL Route:

        • 這兩個(gè)中間件都算是官方的,MaxScale 是 mariadb (MySQL 原作者維護(hù)的一個(gè)版本)研發(fā)的,目前版本不支持分庫分表。MySQL Route 是現(xiàn)在 MySQL 官方 Oracle 公司發(fā)布出來的一個(gè)中間件。

        • 優(yōu)點(diǎn):

        • 架構(gòu)設(shè)計(jì)更靈活

        • 可以在程序上實(shí)現(xiàn)一些高級(jí)控制,如:透明化水平拆分,failover,監(jiān)控可以依靠技術(shù)手段提高 mysql 性能對(duì)業(yè)務(wù)代碼的影響小,同時(shí)也安全

        • 缺點(diǎn):

        • 需要一定的開發(fā)運(yùn)維團(tuán)隊(duì)的支持。


        什么是 MyCAT

        • 一個(gè)徹底開源的,面向企業(yè)應(yīng)用開發(fā)的大數(shù)據(jù)庫集群

        • 支持事務(wù)、ACID、可以替代 MySQL 的加強(qiáng)版數(shù)據(jù)庫

        • 一個(gè)可以視為 MySQL 集群的企業(yè)級(jí)數(shù)據(jù)庫,用來替代昂貴的 Oracle 集群

        • 一個(gè)融合內(nèi)存緩存技術(shù)、NoSQL 技術(shù)、HDFS 大數(shù)據(jù)的新型 SQL Server

        • 結(jié)合傳統(tǒng)數(shù)據(jù)庫和新型分布式數(shù)據(jù)倉庫的新一代企業(yè)級(jí)數(shù)據(jù)庫產(chǎn)品

        • 一個(gè)新穎的數(shù)據(jù)庫中間件產(chǎn)品

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離


        MyCat 服務(wù)安裝與配置

        • MyCat 有提供編譯好的安裝包,支持 Windows、Linux、Mac、Solaris 等系統(tǒng)上安裝與運(yùn)行

        • 官方下載主頁 http://www.mycat.org.cn/

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        • 實(shí)驗(yàn)架構(gòu):
        • 192.168.2.2 Mycat CentOS 8.3.2011
        • 192.168.2.3 主服務(wù)器 CentOS 7.6
        • 192.168.2.5 從服務(wù)器 CentOS 7.6
        • 運(yùn)行 Mycat 需要JDK 1.7 或者以上版

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        • 下載 Mycat
        • wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz
        • tar xf Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz -C /usr/local/
        • sudo useradd -M -N -s /sbin/nologin mycat && echo "123456" | sudo passwd –stdin mycat
        • sudo chown -R mycat. /usr/local/mycat/

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        一起聊聊Mycat實(shí)現(xiàn) Mysql 集群讀寫分離

        • bin 程序目錄,Linux 下運(yùn)行:./mycat console,首先要 chmod +x *
          注:mycat 支持的命令{ console | start | stop | restart | status | dump }
          conf 目錄下存放配置文件:server.xml 是 Mycat 服務(wù)器參數(shù)調(diào)整和用戶授權(quán)的配置文件,schema.xml 是邏輯庫定義和表以及分片定義的配置文件,rule.xml 是分片規(guī)則的配置文件,分片規(guī)則的具體一些參數(shù)信息單獨(dú)存放為文件,也在這個(gè)目錄下,配置文件修改,需要重啟 Mycat 生效。
          lib 目錄下主要存放 mycat 依賴的一些 jar 文件。
          日志存放在 logs/mycat.log 中,每天一個(gè)文件,日志的配置是在 conf/log4j.xml 中,根據(jù)自己的需要,可以調(diào)整輸出級(jí)別為 debug,在 debug 級(jí)別下,會(huì)輸出
        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 影视网欧洲精品| 国产精品欧美久久久久天天影视| 国产成人精品日本亚洲18图| 毛片a精品**国产| 久久99国产精品二区不卡| 亚洲国产精品嫩草影院在线观看 | 91精品国产乱码久久久久久 | 无码欧精品亚洲日韩一区| 国内精品国语自产拍在线观看 | 国产精品一二三区| 日韩精品无码一区二区三区不卡 | 中日精品无码一本二本三本| 国产精品国产AV片国产| 国产亚洲精品一品区99热| 久久ww精品w免费人成| 中文字幕久久精品无码| 欧美精品成人3d在线| 精品福利一区二区三区精品国产第一国产综合精品 | 亚洲AV永久无码精品一百度影院| 免费短视频软件精品一区二区| 隔壁老王国产在线精品| 四虎成人精品免费影院| 久久se精品一区二区| 精品久久久久久综合日本| 国产精品国产亚洲精品看不卡| 日韩精品无码一区二区中文字幕 | 欧美性videofree精品| 国产精品1区2区| 99热精品在线观看| 国产久热精品无码激情| 精品亚洲成a人片在线观看| 日韩精品视频一区二区三区| 亚洲精品无码mv在线观看网站 | 久久久久国产日韩精品网站| 久久99精品久久久久久野外| 久久精品国产精品亚洲人人 | 久久久久久亚洲精品不卡| 精品露脸国产偷人在视频| 久久99精品久久久久久不卡| 日本精品一区二区三区在线视频| 久久久久人妻一区精品|