日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL基础笔记(14)-使用Amoeba和Docker搭建MySQL读写分离架构

發布時間:2023/12/18 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL基础笔记(14)-使用Amoeba和Docker搭建MySQL读写分离架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 一、搭建MySQL主從復制和主主復制架構
      • 二、讀寫分離架構
      • 三、Amoeba的下載和安裝
        • 2.1、安裝配置JDK
        • 2.2、下載Amoeba
        • 2.3、將其上傳并解壓授權
      • 四、為Amoeba創建MySQL賬號
      • 五、配置Amoeba服務器
      • 5.1、修改amoeba.xml
      • 5.2、修改dbServers.xml
      • 六、啟動Amoeba
      • 七、使用Amoeba


Amoeba(變形蟲)相當于一個SQL請求的路由器,目的是為負載均衡、讀寫分離、高可用性提供機制,而不是完全實現它們。用戶需要結合使用MySQL的 Replication等機制來實現副本同步等功能。amoeba對底層數據庫連接管理和路由實現也采用了可插撥的機制,第三方可以開發更高級的策略類來替代作者的實現。由于它比MySQL Proxy配置更加簡單,故本次選擇它作為讀寫分離配置的中間件。

一、搭建MySQL主從復制和主主復制架構

這是使用Amoeba進行讀寫分離配置的基礎,可參考之前的文章:
https://blog.csdn.net/pbrlovejava/article/details/87002171
https://blog.csdn.net/pbrlovejava/article/details/87290238

二、讀寫分離架構

這里要搭建的讀寫分離架構如圖,采用的是雙主熱備+單從服務器,其中同一時刻只能由一臺主庫負責寫入(默認為Master1),從從庫Slave中讀取數據,當Master1發生宕機時,需要手動將Master1修復或者是配置Amoeba將Master2設置為寫庫,并且將Slave的Master配置為Master2;當從庫Slave宕機,則將Master2作為讀庫,達到故障切換效果。

三、Amoeba的下載和安裝

這里使用的是ubuntu系統的服務器進行安裝:

2.1、安裝配置JDK

這里需要安裝并且配置JDK環境,因為Amoeba是基于Java開發的。
https://www.baidu.com/link?url=mRGk0BhQiVpOCaMiaMIRZjwYF0AdBGaBW4C45_qfnAAtsIYhLFpgEW-kwuJHSlsKLPVIYGSPfumrfgx8oXFskimbe-lM-JGeIuVuDnUlqlC&wd=&eqid=ecaf71fb000245bd000000065c6fee4d

2.2、下載Amoeba

https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/

2.3、將其上傳并解壓授權

# 解壓至/usr/local/amoeba/ tar -zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ # 授予該目錄所有權限 chmod 777 /usr/local/amoeba/ # 檢查amoeba是否安裝成功 /usr/local/amoeba/bin/amoeba status

四、為Amoeba創建MySQL賬號

為了使用Amoeba,我們需要三臺由Docker搭建的MySQL中為其創建一個amoeba賬戶:

grant all on *.* to 'amoeba'@'%' identified by '123';

五、配置Amoeba服務器

5.1、修改amoeba.xml

修改amoeba.xml ,配置Amoeba賬號以及讀寫池

vi /usr/local/amoeba/conf/amoeba.xml <property name="user">amoeba</property> <property name="password">123</property> <property name="defaultPool">masters</property> # 默認池 <property name="writePool">masters</property> # 寫操作時使用的池 <property name="readPool">slaves</property> # 讀操作時使用的池

5.2、修改dbServers.xml

修改dbServers.xml,配置MySQL數據庫信息和讀寫分離信息:

<property name="schema">mysql</property> # 使用的是MySQL數據庫 <property name="user">amoeba</property> # 登陸數據庫用的amoeba賬戶 <property name="password">123</property><dbServer name="master1" parent="abstractServer"> <factoryConfig><property name="ipAddress">172.17.0.3</property> </factoryConfig> </dbServer><dbServer name="master2" parent="abstractServer"><factoryConfig><property name="ipAddress">172.17.0.5</property> </factoryConfig> </dbServer><dbServer name="slave" parent="abstractServer"><factoryConfig><property name="ipAddress">172.17.0.2</property> </factoryConfig> </dbServer><dbServer name="masters" virtual="true"> <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--><property name="loadbalance">1</property> <property name="poolNames">master1</property> </dbServer><dbServer name="slaves" virtual="true"> <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--><property name="loadbalance">1</property> <property name="poolNames">slave</property> </dbServer>

六、啟動Amoeba

  • 啟動Amoeba:
nohup /usr/local/amoeba/bin/amoeba start &
  • 查看Amoeba及數據庫運行情況:
netstat -anpt | grep java

這里是8066端口即是Amoeba的監聽端口,外部程序訪問需要經過這個端口去進行讀寫分離的分發。

七、使用Amoeba

以上就是Amoeba的全部配置了,是不是十分簡單呢?當然,使用Amoeba也同樣十分簡單,我們只需要從8066端口登陸數據庫,剛才注冊的那個amoeba賬號派上用場了:

mysql -u amoeba -p -h 127.0.0.1 -P 8066

總結

以上是生活随笔為你收集整理的MySQL基础笔记(14)-使用Amoeba和Docker搭建MySQL读写分离架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。