当前位置:首页 > Mysql教程 > 列表

amoeba mysql的安装配置实例

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-23 16:21:44 浏览: 评论:0 

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy,它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行,下面我们来看看amoeba mysql的安装配置教程.

1、配置好mysql的主从环境,服务器如下,代码如下:

master:172.16.206.129

slave:172.16.206.130

amoeba:172.16.206.131

2、amoeba配置好JDK环境

可以去oracle的官网去下载JDK,安装目录一边不是标准的命名,使用如下命令做软连接:

ln -s /usr/java/jdk1.8.0_11/ /usr/java/jdk1.8

配置JDK环境:在/etc/profile文件末尾添加以下环境参数,代码如下:

export JAVA_HOME=/usr/java/jdk1.8

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

PS:下载的JDK需要和平台对应,uname 可以查看平台类型

3、下载amoeba

网上搜索可以去一些开源软件的网站下载

4、安装amoeba

安装路径/usr/local/amoeba

5、修改amoeba配置参数.

/usr/local/amoeba/conf/amoeba.xml 修改如下:

  1.  <?xml version=”1.0″ encoding=”gbk”?> 
  2.  
  3.  <!DOCTYPE amoeba:configuration SYSTEM “amoeba.dtd”> 
  4.  <amoeba:configuration xmlns:amoeba=”http://amoeba.meidusa.com/”> 
  5.  
  6.  <proxy> 
  7.  
  8.  <!– service class must implements com.meidusa.amoeba.service.Service –> 
  9.  <service name=”Amoeba for Mysql” class=”com.meidusa.amoeba.mysql.server.MySQLService”> 
  10.  <!– port default –> 
  11.  <property name=”port”>8066</property> 
  12.  
  13.  <!– bind ipAddress –> 
  14.  <!–salley 修改绑定IP地址–> 
  15. <property name=”ipAddress”>172.16.206.129</property>  
  16.  
  17.  
  18.  <property name=”connectionFactory”> 
  19.  <bean class=”com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory”> 
  20.  <property name=”sendBufferSize”>128</property> 
  21.  <property name=”receiveBufferSize”>64</property> 
  22.  </bean> 
  23.  </property> 
  24.  
  25.  <property name=”authenticateProvider”> 
  26.  <bean class=”com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator”> 
  27.  <!– 访问amoeba的账户名 –> 
  28.  <property name=”user”>amoeba</property> 
  29.  <!– 访问amoeba的密码 –> 
  30. <property name=”password”>123456</property> 
  31.  
  32.  <property name=”filter”> 
  33.  <bean class=”com.meidusa.toolkit.net.authenticate.server.IPAccessController”> 
  34.  <property name=”ipFile”>${amoeba.home}/conf/access_list.conf</property> 
  35.  </bean> 
  36.  </property> 
  37.  </bean> 
  38.  </property> 
  39.  
  40.  </service> 
  41.  
  42.  <runtime class=”com.meidusa.amoeba.mysql.context.MysqlRuntimeContext”> 
  43.  
  44.  <!– proxy server client process thread size –> 
  45.  <property name=”executeThreadSize”>128</property> 
  46.  
  47.  <!– per connection cache prepared statement size –> 
  48.  <property name=”statementCacheSize”>500</property> 
  49.  
  50.  <!– default charset –> 
  51.  <property name=”serverCharset”>utf8</property> 
  52.  
  53.  <!– query timeout( default: 60 second , TimeUnit:second) –> 
  54.  <property name=”queryTimeout”>60</property> 
  55.  </runtime> 
  56.  
  57.  </proxy> 
  58.  
  59.  <!– 
  60.  Each ConnectionManager will start as thread 
  61.  manager responsible for the Connection IO read , Death Detection 
  62.  –> 
  63.  <connectionManagerList> 
  64.  <connectionManager name=”defaultManager” class=”com.meidusa.toolkit.net.MultiConnectionManagerWrapper”> 
  65.  <property name=”subManagerClassName”>com.meidusa.toolkit.net.AuthingableConnectionManager</property> 
  66.  </connectionManager> 
  67.  </connectionManagerList> 
  68.  
  69.  <!– default using file loader –> 
  70.  <dbServerLoader class=”com.meidusa.amoeba.context.DBServerConfigFileLoader”> 
  71.  <property name=”configFile”>${amoeba.home}/conf/dbServers.xml</property> 
  72.  </dbServerLoader> 
  73.  
  74.  <queryRouter class=”com.meidusa.amoeba.mysql.parser.MysqlQueryRouter”> 
  75.  <property name=”ruleLoader”> 
  76.  <bean class=”com.meidusa.amoeba.route.TableRuleFileLoader”> 
  77.  <property name=”ruleFile”>${amoeba.home}/conf/rule.xml</property> 
  78.  <property name=”functionFile”>${amoeba.home}/conf/ruleFunctionMap.xml</property> 
  79.  </bean> 
  80.  </property> 
  81.  <property name=”sqlFunctionFile”>${amoeba.home}/conf/functionMap.xml</property> 
  82.  <property name=”LRUMapSize”>1500</property> 
  83. <property name=”defaultPool”>master</property> 
  84.  <property name=”writePool”>master</property> 
  85.  <property name=”readPool”>multiPool</property> 
  86. <property name=”needParse”>true</property> 
  87.  </queryRouter> 
  88.  </amoeba:configuration> 

/usr/local/amoeba/conf/dbServer.xml修改如下:

  1.  <?xml version=”1.0″ encoding=”gbk”?> 
  2.  
  3.  <!DOCTYPE amoeba:dbServers SYSTEM “dbserver.dtd”> 
  4.  <amoeba:dbServers xmlns:amoeba=”http://amoeba.meidusa.com/”> 
  5.  
  6.  <!– 
  7.  Each dbServer needs to be configured into a Pool, 
  8.  If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration: 
  9.  add attribute with name virtual = “true” in dbServer, but the configuration does not allow the element with name factoryConfig 
  10.  such as ‘multiPool’ dbServer 
  11.  –> 
  12.  
  13.  <dbServer name=”abstractServer” abstractive=”true”> 
  14.  <factoryConfig class=”com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory”> 
  15.  <property name=”connectionManager”>${defaultManager}</property> 
  16.  <property name=”sendBufferSize”>64</property> 
  17.  <property name=”receiveBufferSize”>128</property> 
  18.  
  19.  <!– mysql port 访问MySQL的端口号 –> 
  20. <property name=”port”>3306</property> 
  21.  
  22.  <!– mysql schema 访问MySQL默认的数据库–> 
  23. <property name=”schema”>test</property> 
  24.  
  25.  <!– mysql user 访问MySQL的账户名–> 
  26.  <property name=”user”>amoeba</property> 
  27.  <!– mysql password 访问MySQL的密码–> 
  28. <property name=”password”>123456</property> 
  29.  </factoryConfig> 
  30.  
  31.  <poolConfig class=”com.meidusa.toolkit.common.poolable.PoolableObjectPool”> 
  32.  <property name=”maxActive”>500</property> 
  33.  <property name=”maxIdle”>500</property> 
  34.  <property name=”minIdle”>1</property> 
  35.  <property name=”minEvictableIdleTimeMillis”>600000</property> 
  36.  <property name=”timeBetweenEvictionRunsMillis”>600000</property> 
  37.  <property name=”testOnBorrow”>true</property> 
  38. <property name=”testOnReturn”>true</property> 
  39.  <property name=”testWhileIdle”>true</property> 
  40.  </poolConfig> 
  41.  </dbServer> 
  42.  
  43. <dbServer name=”master” parent=”abstractServer”> 
  44.  <factoryConfig> 
  45.  <!– mysql ip –> 
  46.  <property name=”ipAddress”>172.16.206.129</property> 
  47.  </factoryConfig> 
  48.  </dbServer> 
  49.  
  50.  <dbServer name=”slave” parent=”abstractServer”> 
  51.  <factoryConfig> 
  52.  <!– mysql ip –> 
  53. <property name=”ipAddress”>172.16.206.130</property> 
  54.  </factoryConfig> 
  55.  </dbServer> 
  56.  
  57.  <dbServer name=”multiPool” virtual=”true”> 
  58.  <poolConfig class=”com.meidusa.amoeba.server.MultipleServerPool”> 
  59.  <!– Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA–> 
  60.  <property name=”loadbalance”>1</property> 
  61.  
  62.  <!– Separated by commas,such as: server1,server2,server1 –> 
  63.  <property name=”poolNames”>master,slave,slave</property> 
  64.  //开源代码phpfensi.com 
  65.  </poolConfig> 
  66.  </dbServer> 
  67.  
  68.  </amoeba:dbServers> 

启动amoeba:/usr/local/amoeba/bin/launcher &

关闭amoeba:/usr/local/amoeba/bin/shutdown

amoeba不支持存储过程、不支持大数据量查询,这个比较讨厌,所以我最后还是没有用amoeba.

Tags: amoeba mysql安装配置

分享到: