下文內容主要給大家帶來MySQL開源cetus簡析,這里所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。
Cetus
簡介
Cetus是由C語言開發的關系型數據庫MySQL的中間件,主要提供了一個全面的數據庫訪問代理功能。Cetus連接方式與MySQL基本兼容,應用程序幾乎不用修改即可通過Cetus訪問數據庫,實現了數據庫層的水平擴展和高可用。
主要功能特性
Cetus分為讀寫分離和分庫(分表是分庫的一種特殊形式)兩個版本。
針對讀寫分離版本:

CREATE database if not exists testdb;
create user 'cetus_app'@'192.168.1.221' identified by 'cetus@123';
GRANT all ON testdb.* TO 'cetus_app'@'192.168.1.221';主從延遲檢測準備
創建心跳庫和心跳表,并為用戶授權
例如:
Cetus所在的主機ip為192.168.1.221
create database if not exists proxy_heart_beat;
use proxy_heart_beat;
CREATE TABLE if not exists tb_heartbeat ( p_id varchar(128) NOT NULL , p_ts timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (p_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
GRANT ALL ON proxy_heart_beat.* TO 'cetus_app'@'192.168.1.221';注意:創建心跳表時p_ts精度必須到小數點后,否則會影響主從延遲檢測的準確度
(cetus會額外啟動一個長連接連接主庫,一直執行類似語句:
INSERT INTO proxy_heart_beat.tb_heartbeat (p_id, p_ts) VALUES ('/home/user/cetus_install/conf_2033375456_2567636547', '2019-02-27 17:03:37.106285') ON DUPLICATE KEY UPDATE p_ts='2019-02-27 17:03:37.106285'同時啟動一個長連接連接從庫庫,一直執行類似語句:
select p_ts from proxy_heart_beat.tb_heartbeat where p_id='/home/user/cetus_install/conf_2070313331_376322286'
主庫寫入時間戳,從庫讀取時間戳,與本地時間做差值,計算主從延遲
)==安裝cetus
環境依賴
yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs zlib-devel -y
cd /usr/local/ && git clone https://github.com/Lede-Inc/cetus.git
cd /usr/local/cetus/
mkdir build/
cd build/編譯
讀寫分離版本:
CFLAGS='-g -Wpointer-to-int-cast' cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/user/cetus_install -DSIMPLE_PARSER=ON分庫版本:
CFLAGS='-g -Wpointer-to-int-cast' cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/user/cetus_install -DSIMPLE_PARSER=OFF
make install
cd /home/user/cetus_install/conf/配置文件在make insatll后存在示例文件,以.example結尾,目錄為/home/user/cetus_install/conf/,包括用戶設置文件(users.json)、變量處理配置文件(variables.json)、分庫版本的分片規則配置文件(sharding.json)、讀寫分離版本的啟動配置文件(proxy.conf)和分庫版本的啟動配置文件(shard.conf)。
根據具體編譯安裝的版本編輯相關配置文件,若使用讀寫分離功能則需配置users.json和proxy.conf,若使用sharding功能則需配置users.json、sharding.json和shard.conf,其中兩個版本的variables.json均可選配。
讀寫分離:
cp proxy.conf.example proxy.conf
cp users.json.example users.jsonusers.json用來配置用戶登陸信息,采用鍵值對的結構,其中鍵是固定的,值是用戶在MySQL創建的登陸用戶名和密碼。
其中user的值是用戶名;client_pwd的值是前端登錄Cetus的密碼;server_pwd的值是Cetus登錄后端的密碼。
chmod 660 conf/*
啟動服務:
bin/cetus --defaults-file=conf/proxy.conf客戶端連接數據庫:密碼為users.json中的client_pwd,地址端口為proxy.conf中的proxy-address
mysql -ucetus_app -p'cetus@123' -P6001 -h292.168.1.221cetus本機登錄管理端口:
mysql -h227.0.0.1 -uadmin -padmin -P7001對于以上關于MySQL開源cetus簡析,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。