Centos7 安裝Amoeba和mysql5.7實現讀寫分離集群環境虛擬機下載

本博主配置好的Centos7 安裝Amoeba和mysql5.7實現讀寫分離集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1aRiIT14hvq0RTOOoh8ICwQ
提取碼:s3pd 下載後,用Vmware workstation打開,即可以正常使用

Mysql的讀寫分離可以使用MySQL Proxy,也可以使用Amoeba。Amoeba(變形蟲)項目是一個類似MySQL Proxy的分散式資料庫中間代理層軟體,是由陳思儒開發的一個開源的java項目。其主要功能包括讀寫分離,垂直分庫,水平分庫等,經過測試,發現其功能和穩定性都非常的不錯,如果需要構架分散式資料庫環境,採用Amoeba是一個不錯的方案。目前Amoeba一共包括For aladdin,For MySQL和For Oracle三個版本,以下介紹主要關注For MySQL版本的一個讀寫分離實現。實際上垂直切分和水平切分的架構也相差不大,改動幾個配置就可以輕鬆實現。下圖是一個採用Amoeba的讀寫分離技術結合MySQL的Master-Slave Replication的一個分散式系統的架構:

Amoeba處於在應用和資料庫之間,扮演一個中介的角色,將應用傳遞過來的SQL語句經過分析後,將寫的語句交給Master庫執行,將讀的語句路由到Slave庫執行(當然也可以到Master讀,這個完全看配置)。Amoeba實現了簡單的負載均衡(採用輪詢演算法,在配置文件里設置)和Failover。如果配置了多個讀的庫,則任何一個讀的庫出現宕機,不會導致整個系統故障,Amoeba能自動將讀請求路由到其他可用的庫上,當然,寫還是單點的依賴於Master資料庫的,這個需要通過資料庫的切換,或者水平分割等技術來提升Master庫的可用性。

本博主配置好的Centos7 安裝Amoeba和mysql5.7實現讀寫分離集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1aRiIT14hvq0RTOOoh8ICwQ
提取碼:s3pd 下載後,用Vmware workstation打開,即可以正常使用

Amoeba可以在不同機器上啟動多個,並且做同樣的配置來進行水平擴展,以分擔壓力和提升可用性,可以將Amoeba和MySQL裝在同一台機器,也可以裝在不同的機器上,Amoeba本身不做數據緩存,所以對於內存消耗很少,主要是CPU佔用。對於應用來說,圖中的三個Amoeba就是三台一模一樣的MySQL資料庫,連接其中任何一台都是可以的,所以需要在應用端有一個Load balance和Failover的機制,需要連接資料庫時從三台中隨機挑選一台即可,如果其他任何一台出現故障,則可以自動Failover到剩餘的可用機器上。MySQL的JDBC驅動從connector-j 3.17版本起已經提供了這樣的負載均衡和故障切換的功能,那麼剩下的事情對於應用來說就很簡單了,不需要做太多的改動就能搭建一套高可用的MySQL分散式資料庫環境,何樂而不為?

Amoeba專註分散式資料庫proxy開發。Amoeba身處在Client、DB Server(s)之間,對客戶端透明,具有負載均衡、高可用性、sql過濾、讀寫分離、可路由相關的query到目標資料庫、可並發請求多台資料庫合併結果。
Amoeba主要解決:
1)降低 數據切分帶來的複雜多資料庫結構
2)提供切分規則並降低 數據切分規則 給應用帶來的影響
3)降低db 與客戶端的連接數
4)讀寫分離

為什麼要用Amoeba
目前要實現mysql的主從讀寫分離,主要有以下幾種方案:
1)通過程序實現,網上很多現成的代碼,比較複雜,如果添加從伺服器要更改多台伺服器的代碼。
2)通過mysql-proxy來實現,由於mysql-proxy的主從讀寫分離是通過lua腳本來實現,目前lua的腳本的開發跟不上節奏,而寫沒有完美的現成的腳本,因此導致用於生產環境的話風險比較大,據網上很多人說mysql-proxy的性能不高。
3)自己開發介面實現,這種方案門檻高,開發成本高,不是一般的小公司能承擔得起。
4)利用阿里巴巴的開源項目Amoeba來實現,具有負載均衡、高可用性、sql過濾、讀寫分離、可路由相關的query到目標資料庫,並且安裝配置非常簡單。經測試,性能相比mysql-proxy較高。

Amoeba的有關配置文件說明

主配置文件:amoeba.xml 用來配置Amoeba服務的基本參數,如Amoeba主機地址、埠、認證方式、用於連接的用戶名、密碼、線程數、超時時間、其他配置文件的位置等。
資料庫伺服器配置文件:dbServers.xml 用來存儲和配置Amoeba所代理的資料庫伺服器的信息,如:主機IP、埠、用戶名、密碼等。
切分規則配置文件rule.xml 用來配置切分規則。
資料庫函數配置文件:functionMap.xml 用來配置資料庫函數的處理方法,Amoeba將使用該配置文件中的方法解析資料庫函數。
切分規則函數配置文件ruleFunctionMap.xml 用來配置切分規則中使用的用戶自定義函數的處理方法。
訪問規則配置文件:access_list.conf 用來授權或禁止某些伺服器IP訪問Amoeba。
日誌規格配置文件log4j.xml 用來配置Amoeba輸出日誌的級別和方式。本博主配置好的Centos7 安裝Amoeba和mysql5.7實現讀寫分離集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1aRiIT14hvq0RTOOoh8ICwQ
提取碼:s3pd 下載後,用Vmware workstation打開,即可以正常使用

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營

發表評論

您的電子郵箱地址不會被公開。 必填項已用*標註