日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Mysql ProxyAtlas生產(chǎn)環(huán)境使用心得

 

一、Atlas介紹

Atlas是360開源的一個MySQL Proxy,以下是官方介紹:

Atlas是由 Qihoo 360公司W(wǎng)eb平臺部基礎(chǔ)架構(gòu)團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎(chǔ)上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達幾十億條。同時,有超過50家公司在生產(chǎn)環(huán)境中部署了Atlas,超過800人已加入了我們的開發(fā)者交流群,并且這些數(shù)字還在不斷增加。

https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md

以下是其github代碼庫:https://github.com/Qihoo360/Atlas

 

主要功能:

1.讀寫分離

2.從庫負載均衡

3.IP過濾

4.自動分表

5.DBA可平滑上下線DB

6.自動摘除宕機的DB

 

“自動分表”需要打引號,對于新表是沒問題的;

如果是一張有歷史數(shù)據(jù)的表需要拆分,Atlas是不會幫我們拆分的,就需要自己寫工具遷移。

 


二、安裝

1、從官網(wǎng)下載相應(yīng)版本,我們選擇的是2.2.1;

https://github.com/Qihoo360/Atlas/releases

分表的方式有2種,1是單機分表,另1種是支持跨機器分表,可以根據(jù)情況選擇,我們選擇的是單機分表的,即一張總表拆成多張子表,子表和總表都在一個Mysql實例上。

 

 

2、安裝

因為是rpm安裝,直接用rpm命令安裝就可以了:

rpm -i Atlas-2.2.1.el6.x86_64.rpm

 

默認安裝目錄為 /usr/local/mysql-proxy。

 

啟動命令

/usr/local/mysql-proxy/bin/mysql-proxyd test start

 

test表示哪個實例

配置文件在 usr/local/mysql-proxy/conf下,每個配置文件表示一個實例;

 

3、配置說明

以下是常用的配置項:

Mysql ProxyAtlas生產(chǎn)環(huán)境使用心得

 

關(guān)鍵參數(shù):

proxy-backend-addresses:后端Mysql實例地址

 

tables:分表參數(shù),格式:

數(shù)據(jù)庫名.表名.分表字段.子表數(shù)量

 

舉1個例子,假如我們在做社區(qū),社區(qū)主要功能是發(fā)帖和回帖,那主要是2張表(只是為了演示,不會把真實實際場景所有字段加上):

Mysql ProxyAtlas生產(chǎn)環(huán)境使用心得

 

假設(shè)這些表都在數(shù)據(jù)庫forums中,

如果我們要對replies進行分表,則tables這樣設(shè)置

forums.replies.tid.64

 

上面表示對replies進行分表,分表字段為tid,即所有tid相同的回復會在同一張表,總共分64張表。

 

三、踩過的坑

1、Atlas不支持壓縮選項,以下連接是不行的

mysql_connect($dbhost, $dbuser, $dbpw, 1, MYSQL_CLIENT_COMPRESS);

正確的寫法

mysql_connect($dbhost, $dbuser, $dbpw, 1);

2. Count語句問題

分表后,count返回的結(jié)果會是針對多個表查詢的多個值(count結(jié)果為0的不返回),具體示例如下(當前分表為4張):

Mysql ProxyAtlas生產(chǎn)環(huán)境使用心得

 

3. 分表后,如果刪掉主表,則不帶分表字段的查詢會報錯(如下圖);如果保留主表,則查詢的是主表數(shù)據(jù)。

Mysql ProxyAtlas生產(chǎn)環(huán)境使用心得

 

4. 分頁問題

以上面舉例的場景來說,如果要從回復表查詢uid為123,并且tid為100-200之間的記錄的第2頁(Discuz里就是這樣查用戶的回復的),每頁顯示10條,按時間倒序,就有可能返回為空了;

 

為什么這樣呢,設(shè)想這樣一個場景,用戶一共有40條回復,假設(shè)分布在4張表中,并且分布很均勻,每張表10條記錄,因為從每張子表取偏移10-20的記錄,子表返回為空了,實際是用戶是有數(shù)據(jù)的,正確的做法是從每張表取出前20條記錄,再合并然后進行分頁。

 

四、總結(jié)

1、如果你是新表,并且預見以后數(shù)據(jù)很大,可以用上Atlas來解決數(shù)據(jù)量的問題;

2、舊表的話,你還得自己寫腳本導數(shù)據(jù),核對數(shù)據(jù);

3、如果有些分頁查詢的話,還需要自己重寫;

4、確定你的所有場景的查詢是否都有分表字段作為where,沒有的話,需要自己再寫工具將子表的數(shù)據(jù)同步到總表;

 

可以看到Atlas如果需要產(chǎn)品化還要做很多的事情,如果確定上面都不是問題,就大膽的用吧~

分享到:
標簽:Mysql ProxyAtlas
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定