A-A+

amoeba mysql的安装配置实例

2017年10月15日 PHP技术文章 暂无评论 阅读 0 views 次

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>   
  89. /usr/local/amoeba/conf/dbServer.xml修改如下:  
  90.   
  91.  <?xml version=”1.0″ encoding=”gbk”?>   
  92.    
  93.  <!DOCTYPE amoeba:dbServers SYSTEM “dbserver.dtd”>   
  94.  <amoeba:dbServers xmlns:amoeba=”http://amoeba.meidusa.com/”>   
  95.    
  96.  <!–   
  97.  Each dbServer needs to be configured into a Pool,   
  98.  If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:   
  99.  add attribute with name virtual = “true” in dbServer, but the configuration does not allow the element with name factoryConfig   
  100.  such as ‘multiPool’ dbServer   
  101.  –>   
  102.    
  103.  <dbServer name=”abstractServer” abstractive=”true”>   
  104.  <factoryConfig class=”com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory”>   
  105.  <property name=”connectionManager”>${defaultManager}</property>   
  106.  <property name=”sendBufferSize”>64</property>   
  107.  <property name=”receiveBufferSize”>128</property>   
  108.    
  109.  <!– mysql port 访问MySQL的端口号 –>   
  110. <property name=”port”>3306</property>   
  111.    
  112.  <!– mysql schema 访问MySQL默认的数据库–>   
  113. <property name=”schema”>test</property>   
  114.    
  115.  <!– mysql user 访问MySQL的账户名–>   
  116.  <property name=”user”>amoeba</property>   
  117.  <!– mysql password 访问MySQL的密码–>   
  118. <property name=”password”>123456</property>   
  119.  </factoryConfig>   
  120.    
  121.  <poolConfig class=”com.meidusa.toolkit.common.poolable.PoolableObjectPool”>   
  122.  <property name=”maxActive”>500</property>   
  123.  <property name=”maxIdle”>500</property>   
  124.  <property name=”minIdle”>1</property>   
  125.  <property name=”minEvictableIdleTimeMillis”>600000</property>   
  126.  <property name=”timeBetweenEvictionRunsMillis”>600000</property>   
  127.  <property name=”testOnBorrow”>true</property>   
  128. <property name=”testOnReturn”>true</property>   
  129.  <property name=”testWhileIdle”>true</property>   
  130.  </poolConfig>   
  131.  </dbServer>   
  132.    
  133. <dbServer name=”master” parent=”abstractServer”>   
  134.  <factoryConfig>   
  135.  <!– mysql ip –>   
  136.  <property name=”ipAddress”>172.16.206.129</property>   
  137.  </factoryConfig>   
  138.  </dbServer>   
  139.    
  140.  <dbServer name=”slave” parent=”abstractServer”>   
  141.  <factoryConfig>   
  142.  <!– mysql ip –>   
  143. <property name=”ipAddress”>172.16.206.130</property>   
  144.  </factoryConfig>   
  145.  </dbServer>   
  146.    
  147.  <dbServer name=”multiPool” virtual=”true”>   
  148.  <poolConfig class=”com.meidusa.amoeba.server.MultipleServerPool”>   
  149.  <!– Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA–>   
  150.  <property name=”loadbalance”>1</property>   
  151.    
  152.  <!– Separated by commas,such as: server1,server2,server1 –>   
  153.  <property name=”poolNames”>master,slave,slave</property>   
  154.  //开源代码www.xiariboke.net   
  155.  </poolConfig>   
  156.  </dbServer>   
  157.    
  158.  </amoeba:dbServers>   

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

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

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

标签:

给我留言