MySQL中間件Atlas安裝及使用


簡介

Atlas是由 Qihoo 360公司Web平台部基礎架構團隊開發維護的一個基於MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。而且安裝方便。配置的注釋寫的蠻詳細的,都是中文。

主要功能

  • 讀寫分離
  • 從庫負載均衡
  • IP過濾
  • 自動分表
  • DBA可平滑上下線DB
  • 自動摘除宕機的DB

相關鏈接

Mysql中間件產品比較:http://songwie.com/articlelist/44
Atlas的安裝:https://github.com/Qihoo360/Atlas/wiki/Atlas的安裝
Atlas功能特點FAQ:https://github.com/Qihoo360/Atlas/wiki/Atlas功能特點FAQ
Atlas性能特點:https://github.com/Qihoo360/Atlas/wiki/Atlas的性能測試
Atlas架構:https://github.com/Qihoo360/Atlas/wiki/Atlas的架構
Atlas+Keepalived:http://sofar.blog.51cto.com/353572/1601552
Atlas各項功能驗證:http://blog.itpub.net/27000195/viewspace-1421262/

官網教程很詳細,且是中文,這里就不詳述相關安裝過程了

設置開機自啟動

echo "/usr/local/mysql-proxy/bin/mysql-proxyd test start" >> /etc/rc.local

添加atlas服務

# 編寫簡單的Atlas啟動腳本
vim /etc/init.d/atlas

#!/bin/sh  

start()  
{  
        /usr/local/mysql-proxy/bin/mysql-proxyd test start
}  
stop()  
{  
        /usr/local/mysql-proxy/bin/mysql-proxyd test stop
}
status()  
{       
        /usr/local/mysql-proxy/bin/mysql-proxyd test status  
}
restart()  
{  
        /usr/local/mysql-proxy/bin/mysql-proxyd test restart
} 
ATLAS="/usr/local/mysql-proxy/bin/mysql-proxyd"  
[ -f $ATLAS ] || exit 1  
# See how we were called.  
case "$1" in  
        start)  
                start  
                ;;  
        stop)  
                stop  
                ;;  
        restart)  
                restart
                ;;  
        status)  
                status 
                ;;  
                # stop    sleep 3   start  ;;  
        *)  
                echo $"Usage: $0 {start|stop|status|restart}"  
                exit 1  
esac  
exit 0 

# atlas服務驗證
service atlas status
service atlas start
service atlas restart
service atlas stop

查看MySQL監聽端口

etstat -tanlp | grep mysql
tcp        0      0 0.0.0.0:2345            0.0.0.0:*               LISTEN      21449/mysql-proxy   
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      24096/mysqld        
tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      21449/mysql-proxy

Atlas安裝及卸載

# 安裝
sudo rpm -i Atlas-2.2.1.el6.x86_64.rpm

# 卸載
sudo rpm -e Atlas-2.2.1.el6.x86_64

問題相關

**問題:atlas安裝后,讀寫分離測試,為什么讀一直走主庫 **
回答:有事務存在的情況下,會強制走主庫。解決方法,添加注解[@Transactional(propagation=Propagation.NOT_SUPPORTED)];
若不涉及事務,檢查主從庫的用戶名密碼配置是否一致,是否設置為允許遠程登錄,並執行[FLUSH PRIVILEGES]。

問題:讀寫分離自測成功,java程序連接Atlas后卻不能讀寫分離,所有的請求都發向主庫,這是為什么?
回答:檢查一下java框架,是不是默認將autocommit設置為0了,很多java框架將語句都封裝在一個事務中,而Atlas會將事務請求都發向主庫。

問題:執行相關命令,成功上下線從庫DB后,為什么從庫仍然可以同步主庫數據
回答:atlas是中間件,只是提供了訪問層的代理,代理和主從沒有關系,數據庫的主從還需自己配置。而上下線從庫DB,只是說讀的請求不再發往相應的從庫了,事先配置的主從關系並不會改變。還有目前的atlas暫不支持多主模式。

問題:Atlas碰到解決不了的問題怎么辦?
回答:將相關環境、步驟和運行截圖發郵件至zhuchao[AT]360.cn,或者加QQ群326544838。我一問題糾結了幾小時,然后發送郵件了,三分鍾后就回復我了,震驚了 (¯﹃¯)

更新中。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM