多线程相关配置

多线程配置这个问题经常被提及到。Amoeba响应速度主要取决机器性能跟Amoeba的配置以及网络条件。通过配置amoeba.xml文件可以配置Amoeba多线程的相关参数。

Example 5.2. 配置amoeba.xml的多线程相关选项

主要配置runtime元素,如下:

<?xml version="1.0" encoding="gbk"?>

<!DOCTYPE amoeba:configuration SYSTEM "amoeba.dtd">
<amoeba:configuration xmlns:amoeba="http://amoeba.meidusa.com/">
 ...
 <proxy>
 ...
  <runtime class="com.meidusa.amoeba.mysql.context.MysqlRuntimeContext">
   <!-- proxy server net IO Read thread size -->
   <property name="readThreadPoolSize">20</property>1
   
   <!-- proxy server client process thread size -->
   <property name="clientSideThreadPoolSize">30</property>2
   
   <!-- mysql server data packet process thread size -->
   <property name="serverSideThreadPoolSize">30</property>3
   
   <!-- per connection cache prepared statement size  -->
   <property name="statementCacheSize">500</property>4
   
   <!-- query timeout( default: 60 second , TimeUnit:second) -->
   <property name="queryTimeout">60</property>5
  </runtime>
 ...
 </proxy>
 ...
</amoeba:configuration>

1

readThreadPoolSize –用于处理客户端连接发送过来的数据,跟数据库服务器返回的数据的线程数 量这个可以根据客户端连接数量来调整。

2

clientSideThreadPoolSize –在读线程读完客户端的请求数据包以后,这个线程将会接手处理具体 的业务逻辑(比如:解析SQL、SQL 路由)。

3

serverSideThreadPoolSize –在server端读取数据库返回的数据包,合并多数据库返回的数据,将数 据包发送到客户端。

4

statementCacheSize –连接池缓存的Prepared Statement数量。

5

queryTimeout –语句执行超时时间设置。