首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Amoeba for MySQL 分庫分表中間件快速配置指南

     編輯:MySQL 資料庫相關知識

前置條件

  • JDK 1.5+(框架基於 JDK 1.5 特性開發)
  • MySQL 協議版本 10(MySQL 4.1+)
  • 至少一台可用的 MySQL 4.1+ 服務

核心配置四大模塊

1. Server 模塊(代理服務監聽)

<server>
  <property name="port">2066</property>
  <property name="ipAddress">127.0.0.1</property>
  <property name="readThreadPoolSize">100</property>
  <property name="clientSideThreadPoolSize">80</property>
  <property name="serverSideThreadPoolSize">100</property>
  <property name="user">root</property>
  <property name="password">password</property>
</server>

關鍵參數:port 對外端口,readThreadPoolSize 讀網絡 IO 線程,clientSideThreadPoolSize 處理客戶端請求線程,serverSideThreadPoolSize 處理後端返回線程。雙核 CPU 建議按文檔默認值調整。

2. ConnectionManager 模塊(連接生命週期管理)

<connectionManagerList>
  <connectionManager name="defaultManager">
    <className>com.meidusa.amoeba.net.AuthingableConnectionManager</className>
  </connectionManager>
</connectionManagerList>

每個 Manager 作為一個線程啟動,負責註冊連接的空閒檢測、死亡檢測、IO 事件分發。

3. dbServer 模塊(物理數據庫映射與連接池)

factoryConfig(工廠配置):

<factoryConfig>
  <className>com.meidusa.amoeba.mysql.net.MySQLServerConnectionFactory</className>
  <property name="manager">defaultManager</property>
  <property name="port">3301</property>
  <property name="ipAddress">127.0.0.1</property>
  <property name="user">test</property>
  <property name="password">test</property>
  <property name="schema">testSchema</property>
</factoryConfig>

poolConfig(連接池配置):

<poolConfig>
  <className>com.meidusa.amoeba.net.poolable.PoolableObjectPool</className>
  <property name="maxActive">200</property>
  <property name="maxIdle">200</property>
  <property name="minIdle">10</property>
  <property name="minEvictableIdleTimeMillis">600000</property>
  <property name="timeBetweenEvictionRunsMillis">600000</property>
  <property name="testOnBorrow">true</property>
  <property name="testWhileIdle">true</property>
</poolConfig>

多台同規格 MySQL 做負載均衡,可用 MultipleServerPool,配置 virtual="true"。

4. QueryRouter 模塊(SQL 路由解析)

<queryRouter>
  <className>com.meidusa.amoeba.mysql.parser.MySQLQueryRouter</className>
  <property name="needParse">false</property>
  <property name="LRUMapSize">1500</property>
  <property name="defaultPool">server1</property>
  <!-- 啟用解析後可配置 -->
  <!-- property name="ruleConfig">./conf/rule.xml</property -->
  <!-- property name="functionConfig">./conf/functionMap.xml</property -->
  <!-- property name="writePool">server1</property -->
  <!-- property name="readPool">server1</property -->
</queryRouter>

核心屬性:needParse=true 開啟 SQL 解析(支援分表、讀寫分離),ruleConfig 分表規則,functionConfig 函數解析,writePool/readPool 讀寫分離目標池,defaultPool 默認落庫池。

啟動驗證

配置完成後啟動 Amoeba,客戶端連接 127.0.0.1:2066 即可透過中間件訪問後端 MySQL 集群。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved