amoeba mysql读写分离_Mysql 实现读写分离的详细教程(amoeba)
Mysql 實現讀寫分離的詳細教程(amoeba)
發布時間:2018-08-17作者:laosun閱讀(2220)
繼上篇文章,mysql實現主從配置之后的讀寫分離實現方式,文章地址。
amoeba是盛大架構師陳思儒獨立完成,除此之外還有很多中間件,比如阿里也出了一款mycat。如果博主時間充裕的話,我會一一實現他們,并且將文章分享出來。
言歸正傳
博主的主從配置情況如下:
Mac電腦: 192.168.1.2????(master)
win7電腦:192.168.1.3????(slave)
具體情況請跳轉到對應的文章頁進行查看,這里就不做過多的解釋了。
下載完成后,我們解壓到D盤根目錄。如下圖所示:
我們用到只有conf目錄,修改配置一下即可:
我們只需要修改一下這兩個文件即可實現簡單的讀寫分離操作。
至于里邊其他文件是什么意思,博主從網上找了一些說明,貼在下邊:1:Amoeba主配置文件($AMOEBA_HOME/conf/amoeba.xml),用來配置Amoeba服務的基本參數,如Amoeba主機地址、端口、認證方式、用于連接的用戶名、密碼、線程數、超時時間、其他配置文件的位置等。
2:數據庫服務器配置文件($AMOEBA_HOME/conf/dbServers.xml),用來存儲和配置Amoeba所代理的數據庫服務器的信息,如:主機IP、端口、用戶名、密碼等。
3:切分規則配置文件($AMOEBA_HOME/conf/rule.xml),用來配置切分規則。
4:數據庫函數配置文件($AMOEBA_HOME/conf/functionMap.xml),用來配置數據庫函數的處理方法,Amoeba將使用該配置文件中的方法解析數據庫函數。
5:切分規則函數配置文件($AMOEBA_HOME/conf/ruleFunctionMap.xml),用來配置切分規則中使用的用戶自定義函數的處理方法。
6:訪問規則配置文件($AMOEBA_HOME/conf/access_list.conf),用來授權或禁止某些服務器IP訪問Amoeba。
7:日志規格配置文件($AMOEBA_HOME/conf/log4j.xml),用來配置Amoeba輸出日志的級別和方式。
8:配置后端mysql?服務器連接[dbServer.xml]
我們打開dbServers.xml 來配置后端mysql服務器的連接等配置
設置abstractServer,這里邊定義了要mysql服務器的用戶名密碼等信息
添加兩個dbServer,繼承自abstractserver,一個代表主數據庫,一個代表從數據庫。
我們看到文件下邊已經自動給添加了server1和server2,我們把它修改了即可(如果需要配置多個數據庫,直接復制dbServer節點即可,如果端口號或者分配的用戶名密碼不一樣,就把abstractServer節點里的3306或者其他配置信息拿到子節點進行配置即可)。
配置數據庫連接池
下邊我們打開amoeba.xml 來配置監聽端口等信息
讀寫分離的配置:
好了,截至到目前為止,簡單的讀寫分離已經配置完畢,下邊我們來啟動進行測試。
==================================華麗的分割線==================================
1:配置數據庫帳號, 到底是什么數據庫帳號呢: 是amoeba鏈接你的master數據庫和slave數據庫的帳號,上邊我也說過了,盡量不要使用root。
GRANT ALL PRIVILEGES ON *.* TO 'am_root'@'192.168.1.3' IDENTIFIED BY 'amd_root' WITH GRANT OPTION;
flush privileges;
在兩個數據庫分別執行上邊的兩行語句。
帳號:am_root,密碼:am_root 是我們之前在dbServer.xml中配置的。 IP: 是你的amoeba所在的機器ip (這里我怕有人迷糊,我解釋一下,我的amoeba和slave服務在同一臺機器,所以沒關系,咱們正常走,博主就兩臺電腦,想安裝個虛擬機來著,最后放棄了。)
這里創建用戶我就不截圖了,很簡單的,登錄mysql -u root -proot ,進去執行這兩句就行(記得修改里邊的你的電腦ip或者你自己設置的帳號密碼)。
2:啟動amoeba
啟動成功了。
博主的主從配置情況如下:
Mac電腦: 192.168.1.2????(master)
win7電腦:192.168.1.3????(slave)
amoba在 192.168.1.2? win7 機器上
我們現在在任意一臺電腦上進行測試,為了防止你們看著迷糊,我在mac上測試吧。
上邊我們的d_sunjs_test數據庫中有個表為 t_users, 里邊有一條數據。
那么我們的slave從服務器中應該也有相同的一條數據。我們也去看一下。
另外查看下主從同步是否正常
從上圖中可以看出,也正常,沒毛病。
那么我們現在在mac上系統上使用amoeba登錄mysql
登錄成功了,我們往t_users表中插入一條數據,并且查看結果。
插入沒有問題,我們查看我們的slave服務器,看是否主從同步成功:
可以看出同步成功了,那么我們如何才能知道讀寫是分離的呢,別著急,我們可以在win7 也就是slave 中插入一條數據,看是否能查出來。
我們現在去查看一下看是否能查詢出來。
看到了吧,這就證明amoeba查詢走的是slave庫, 我們可以看下我們的master庫中是否也有這條數據。
我想到這里就不用我再繼續解釋了。 因為最簡單的讀寫分離已經完成了。
我們程序中使用就配置 amoeba 的連接地址就可以了。
ip: 192.168.1.3
端口:8066
帳號:a_root
密碼:a_root_123
指令中登錄就使用: mysql -h 192.168.1.3 -u a_root -pa_root_123 -P8066
0 +1
版權聲明
分享到:
發表評論
請文明留言
發表
共 0 條評論
總結
以上是生活随笔為你收集整理的amoeba mysql读写分离_Mysql 实现读写分离的详细教程(amoeba)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 禁用mysql的sleep函数_MySQ
- 下一篇: eclipse mysql生成实体类_E