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命令也可以正常列出資料庫列表了。