您好,登錄后才能下訂單哦!
Atlas是由 Qihoo 360公司Web平臺部基礎架構團隊開發維護的一個基于MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內部得到了廣泛應用,很多MySQL業務已經接入了Atlas平臺,每天承載的讀寫請求數達幾十億條。同時,有超過50家公司在生產環境中部署了Atlas,超過800人已加入了我們的開發者交流群,并且這些數字還在不斷增加。
github地址
介紹
安裝
在安裝之前, 服務器上必須要裝有mysql, altas會用到mysql的組件。
在啟動時, 可能提示faild start altas of test之類的信息, 解決方法如下
echo '/usr/local/mysql/lib/' >> /etc/ld.so.conf
ldconfig
[mysql-proxy]
(必備,默認值即可)管理接口的用戶名
admin-username = user
(必備,默認值即可)管理接口的密碼
admin-password = pwd
(必備,根據實際情況配置)主庫的IP和端口
proxy-backend-addresses = 192.168.0.12:3306
(非必備,根據實際情況配置)從庫的IP和端口,@后面的數字代表權重,用來作負載均衡,若省略則默認為1,可設置多項,用逗號分隔。如果想讓主庫也能分擔讀請求的話,只需要將主庫信息加入到下面的配置項中。
proxy-read-only-backend-addresses = 192.168.0.13:3306,192.168.0.14:3306
(必備,根據實際情況配置)用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,用戶名與密碼之間用冒號分隔。主從數據庫上需要先創建該用戶并設置密碼(用戶名和密碼在主從數據庫上要一致)。比如用戶名為myuser,密碼為mypwd,執行./encrypt mypwd結果為HJBoxfRsjeI=。如果有多個用戶用逗號分隔即可。則設置如下行所示:
pwds = myuser: HJBoxfRsjeI=,myuser2:HJBoxfRsjeI=
(必備,默認值即可)Atlas的運行方式,設為true時為守護進程方式,設為false時為前臺方式,一般開發調試時設為false,線上運行時設為true
daemon = true
(必備,默認值即可)設置Atlas的運行方式,設為true時Atlas會啟動兩個進程,一個為monitor,一個為worker,monitor在worker意外退出后會自動將其重啟,設為false時只有worker,沒有monitor,一般開發調試時設為false,線上運行時設為true
keepalive = true
(必備,根據實際情況配置)工作線程數,推薦設置成系統的CPU核數的2至4倍
event-threads = 4
(必備,默認值即可)日志級別,分為message、warning、critical、error、debug五個級別
log-level = message
(必備,默認值即可)日志存放的路徑
log-path = /usr/local/mysql-proxy/log
(必備,根據實際情況配置)SQL日志的開關,可設置為OFF、ON、REALTIME,OFF代表不記錄SQL日志,ON代表記錄SQL日志,該模式下日志刷新是基于緩沖區的,當日志填滿緩沖區后,才將日志信息刷到磁盤。REALTIME用于調試,代表記錄SQL日志且實時寫入磁盤,默認為OFF
sql-log = OFF
(可選項,可不設置)慢日志輸出設置。當設置了該參數時,則日志只輸出執行時間超過sql-log-slow(單位:ms)的日志記錄。不設置該參數則輸出全部日志。
sql-log-slow = 10
(可選項,可不設置)關閉不活躍的客戶端連接設置。當設置了該參數時,Atlas會主動關閉經過'wait-timeout'時間后一直未活躍的連接。單位:秒
wait-timeout = 10
(必備,默認值即可)Atlas監聽的工作接口IP和端口, 連接altas的地址
proxy-address = 0.0.0.0:1234
(必備,默認值即可)Atlas監聽的管理接口IP和端口 admin-address = 0.0.0.0:2345, 連接altas管理服務的地址
(可選項,可不設置)分表設置,此例中person為庫名,mt為表名,id為分表字段,3為子表數量,可設置多項,以逗號分隔,若不分表則不需要設置該項,子表需要事先建好,子表名稱為表名_數字,數字范圍為[0,子表數-1],如本例里,子表名稱為mt_0、mt_1、mt_2
tables = person.mt.id.3
(可選項,可不設置)默認字符集,若不設置該項,則默認字符集為latin1
charset = utf8
(可選項,可不設置)允許連接Atlas的客戶端的IP,可以是精確IP,也可以是IP段,以逗號分隔,若不設置該項則允許所有IP連接,否則只允許列表中的IP連接
client-ips = 127.0.0.1, 192.168.1
(可選項,極少需要)Atlas前面掛接的LVS的物理網卡的IP(注意不是虛IP),若有LVS且設置了client-ips則此項必須設置,否則可以不設置
lvs-ips = 192.168.1.1
執行mysql -h227.0.0.1 -uuser -ppwd -P2345進行連接, 進入altas管理
select * from help;
+----------------------------+---------------------------------------------------------+
| command | description |
+----------------------------+---------------------------------------------------------+
| SELECT * FROM help | 顯示幫助 |
| SELECT * FROM backends | 查看后端服務器狀態 |
| SET OFFLINE $backend_id | 下線后端服務器, $backend_id is backend_ndx's id |
| SET ONLINE $backend_id | 上線后端服務器, ... |
| ADD MASTER $backend | 添加主服務器, example: "add master 127.0.0.1:3306", ... |
| ADD SLAVE $backend | 添加從服務器, example: "add slave 127.0.0.1:3306", ... |
| REMOVE BACKEND $backend_id | 移除后端服務器example: "remove backend 1", ... |
| ADD CLIENT $client | 添加客戶端 example: "add client 192.168.1.2", ... |
| REMOVE CLIENT $client | 移除客戶端example: "remove client 192.168.1.2", ... |
| SAVE CONFIG | 保存配置到文件 |
+----------------------------+---------------------------------------------------------+
mysql> select * from backends
-> ;
+-------------+-------------------+-------+------+
| backend_ndx | address | state | type |
+-------------+-------------------+-------+------+
| 1 | 10.211.55.9:3306 | up | rw |
| 2 | 10.211.55.10:3306 | up | ro |
+-------------+-------------------+-------+------+
2 rows in set (0.00 sec)
mysql> set offline 2
-> ;
+-------------+-------------------+---------+------+
| backend_ndx | address | state | type |
+-------------+-------------------+---------+------+
| 2 | 10.211.55.10:3306 | offline | ro |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)
mysql> set online 2;
+-------------+-------------------+---------+------+
| backend_ndx | address | state | type |
+-------------+-------------------+---------+------+
| 2 | 10.211.55.10:3306 | unknown | ro |
+-------------+-------------------+---------+------+
1 row in set (0.00 sec)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。