1. 程式人生 > >MySQL Cluster讀寫分離驗證

MySQL Cluster讀寫分離驗證

對MySQL Cluster的學習還在繼續,這次OneCoder是利用Amoeba搭建一個可讀寫分離、均衡負載的MySQL叢集環境。

解壓後,在執行命令:

$>amoeba

驗證的時候,就出現了第一個問題:

The stack size specified is too small, Specify at least 160k.

顯然是JVM引數的問題。用vim編輯amoeba啟動檔案。修改其中的:

將圖中選中行的DEFAULT_OPTS="-server ..."最後的 -Xss128k, 改為512k即可。驗證通過。繼續配置Amoeba。

以下內容摘自Amoeba官方文件:

Amoeba有哪些主要的配置檔案?

想象Amoeba作為資料庫代理層,它一定會和很多資料庫保持通訊,因此它必須知道由它代理的資料庫如何連線,比如最基礎的:主機IP、埠、Amoeba使用的使用者名稱和密碼等等。這些資訊儲存在$AMOEBA_HOME/conf/dbServers.xml中。

Amoeba為了完成資料切分提供了完善的切分規則配置,為了瞭解如何分片資料、如何將資料庫返回的資料整合,它必須知道切分規則。與切分規則相關的資訊儲存在$AMOEBA_HOME/conf/rule.xml中。

當我們書寫SQL來操作資料庫的時候,常常會用到很多不同的資料庫函式,比如:UNIX_TIMESTAMP()、SYSDATE()等等。這些函式如何被Amoeba解析呢?$AMOEBA_HOME/conf/functionMap.xml描述了函式名和函式處理的關係。

對$AMOEBA_HOME/conf/rule.xml進行配置時,會用到一些我們自己定義的函式,比如我們需要對使用者ID求HASH值來切分資料,這些函式在$AMOEBA_HOME/conf/ruleFunctionMap.xml中定義。

Amoeba可以制定一些可訪問以及拒絕訪問的主機IP地址,這部分配置在$AMOEBA_HOME/conf/access_list.conf中

Amoeba允許使用者配置輸出日誌級別以及方式,配置方法使用log4j的檔案格式,檔案是$AMOEBA_HOME/conf/log4j.xml。

修改dbServers.xml中的關於資料庫連結的配置(一目瞭然)。

然後確認MySQL Cluster執行正常,再啟動 Amoeba。

通過MySQL命令直接連線205進行測試。成功訪問。

這裡其實OneCoder遇到一個挺巧的問題,就是我環境中的server1暫時不好用,我僅僅配置了server2。可以啟動,但是客戶端連線就總報拒絕訪問。幾番檢查,才在amoeba.xml中發現了一個預設節點的設定。還配置的server1,改成server2終於好用了。

可以看到服務的version已經是mysql-amoeba-proxy了。並且通過show databases命令也可以正常列出資料庫列表了。