萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Amoeba for MySQL 安裝配置實戰:讀寫分離與負載均衡 Proxy 部署

Amoeba 是基於 MySQL 協議的資料庫 Proxy,支援讀寫分離、負載均衡、SQL 路由。本文記錄在三台機器 (Master/Slave/Amoeba) 環境下的 JDK 配置、Amoeba 安裝、核心配置檔修改與啟動驗證全流程。

環境規劃

角色IP說明
Master172.16.206.129寫入主庫
Slave172.16.206.130讀取從庫
Amoeba172.16.206.131Proxy 入口,對外服務 8066 埠

核心配置檔

1. amoeba.xml(主配置)

<service name="Amoeba for Mysql" class="com.meidusa.amoeba.mysql.server.MySQLService">
  <property name="port">8066</property>
  <property name="ipAddress">172.16.206.131</property>  <!-- Amoeba 自身 IP -->
  <property name="authenticateProvider">
    <bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
      <property name="user">amoeba</property>
      <property name="password">123456</property>
    </bean>
  </property>
</service>

<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
  <property name="defaultPool">master</property>   <!-- 寫入池 -->
  <property name="writePool">master</property>
  <property name="readPool">multiPool</property>   <!-- 讀取池(負載均衡) -->
  <property name="needParse">true</property>
</queryRouter>

2. dbServers.xml(後端資料庫定義)

<dbServer name="abstractServer" abstractive="true"> ... </dbServer>

<dbServer name="master" parent="abstractServer">
  <factoryConfig>
    <property name="ipAddress">172.16.206.129</property>
  </factoryConfig>
</dbServer>

<dbServer name="slave" parent="abstractServer">
  <factoryConfig>
    <property name="ipAddress">172.16.206.130</property>
  </factoryConfig>
</dbServer>

<dbServer name="multiPool" virtual="true">
  <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
    <property name="loadbalance">1</property>  <!-- 1=輪詢 -->
    <property name="poolNames">master,slave,slave</property>  <!-- 讀權重 1:2 -->
  </poolConfig>
</dbServer>

啟動與驗證

/usr/local/amoeba/bin/launcher &   # 背景啟動
/usr/local/amoeba/bin/shutdown     # 關閉

應用端連線 172.16.206.131:8066 即可透明享受讀寫分離。

已知限制(生產評估必讀)

  • 不支援預存程序
  • 大結果集查詢易 OOM
  • 社區維護較緩,生產環境建議改用 MyCat、ProxySQL 或原生 MySQL Router

作者後註:因上述限制最終未採用 Amoeba,改用應用層路由方案。

copyright © 萬盛學電腦網 all rights reserved