网站制作学习网PHP→正文:分布式服务器amoeba配置
字体:

分布式服务器amoeba配置

PHP 2010/8/19 19:21:13  点击:不统计

原载于:转www.载for网站制作学习asp必.cn究
在大型网站中数据库数据量是非常大的,这就用到的分布式服务器,把相同的数据放到了不同数据库上,通过数据选择来选择不通的服务器,这样可以均衡网站数据服务负载,可以实现资源的优化配置,也给访问用户更快的访问速度。
在这里我们采用了amoeba(变形虫)小型软件,对多个数据服务进行集成和切分。也就是它可以配置多个数据服务资源,然后又通过不通的参数选择来调用不通的数据资源。

首先下载 amoeba(变形虫),下载地址:http://amoeba.meidusa.com/ 下载后解压到C:amoeba文件夹下,当然这个可以自定义。
然后下载jdk 1.5版本以上。安装完毕。点击开始,运行cmd,写入java 回车看是否安装成功。
更改JAVA_PATH ,右击我的电脑,点击属性,高级,环境变量,下的系统变量,点击新建,变量名JAVA_HOME,变量值为:C:\Program Files\Java\jdk1.6.0_02 (这个是你安装jdk的路径)
点击确定。在点击开始,运行cmd 写入java 回车看JAVA_HOME是否配置成功。
再次。配置amoeba设置分布式服务器。首先打开C:\amoeba\conf 下面的amoeba.xml 配置服务器。
<server>
<!-- proxy server绑定的端口 -->
<property name="port">8066</property>
<!-- proxy server绑定的IP --><!-- 网站制作学习网 -->
<property name="ipAddress">127.0.0.1</property>
<!-- proxy server net IO Read thread size -->
<property name="readThreadPoolSize">20</property>
<!-- proxy server client process thread size -->
<property name="clientSideThreadPoolSize">30</property>
<!-- mysql server data packet process thread size -->
<property name="serverSideThreadPoolSize">30</property>
<!-- socket Send and receive BufferSize(unit:K)  -->
<property name="netBufferSize">128</property>
<!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). -->
<property name="tcpNoDelay">true</property>
<!-- 对外验证的用户名 -->
<property name="user">root</property>
<!-- 对外验证的密码 -->
<!--forasp.cn
<property name="password">password</property>
-->
</server>
上面的配置是你要访问数据库时的地址和8066端口。
<dbServer name="server1">
<!-- PoolableObjectFactory实现类 -->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 真实mysql数据库端口 -->
<property name="port">3306</property>
<!-- 真实mysql数据库IP -->
<property name="ipAddress">127.0.0.1</property>
<property name="schema">test</property>
<!-- 用于登陆mysql的用户名 -->
<property name="user">root</property>
<!-- 用于登陆mysql的密码 -->
<!--<property name="password">password</property>-->
</factoryConfig>
<!-- ObjectPool实现类 省略了.... -->
</poolConfig>
</dbServer>
<dbServer name="server2">
<!-- PoolableObjectFactory实现类 -->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 真实mysql数据库端口 -->
<property name="port">3306</property>
<!-- 真实mysql数据库IP -->
<property name="ipAddress">192.168.1.211</property><!---www.forasp.cn 网站制作学习网-->
<property name="schema">test</property>
<!-- 用于登陆mysql的用户名 -->
<property name="user">boyauser</property>
<!-- 用于登陆mysql的密码 -->
<!---->
<property name="password">123456</property>
</factoryConfig>
<!-- ObjectPool实现类省略...-->
</dbServer>
上面配置了两个服务器。他么的schema值都为test。

继续配置选择访问数据库规则,打开C:\amoeba\conf 下面的rule.xml。
<amoeba:rule xmlns:amoeba="http://amoeba.meidusa.com/">
<tableRule name="a" schema="test" defaultPools="server1,server2"><!--注意这里的schema=test name表示访问的数据表名-->
<rule name="rule1">
<parameters>id</parameters>
<expression><![CDATA[ id <= 2]]></expression><!--当选择的id<=2时选择第一个数据服务-->
<defaultPools>server1</defaultPools>
<readPools>server1</readPools>
<writePools>server1</writePools>
</rule>
<rule name="rule2">
<parameters>id</parameters>
<expression><![CDATA[ id >2 ]]></expression><!--当选择的id>2时选择第二个数据服务-->
<defaultPools>server2</defaultPools>
<writePools>server2</writePools>
<readPools>server2</readPools>
</rule>
</tableRule>
</amoeba:rule>

数据库内容 127.0.0.1 有数据库test,表名a  数据如下
id     name
1 aaa
2 b
3 c
4 d
5 e
192.168.1.211 有数据库test 表名为a 数据如下:http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E
1 f
2 g
3 h
4 i
5 g
6 k
7 l
<?//查询代码 数据库连接类就不写了请参考:http://www.forasp.cn/html/1487.html
$db=new Datelink();
$db->DateServer= '127.0.0.1:8066';
$db->DateBase= 'test';
$db->DateUser= 'root';
$db->Datepwd  = '';
$db->DateContect();
$sql = "select * from a where id = 3";
$resault = $db->execute($sql);
$rows = $db->fetch_array($resault);
echo $rows["name"];
$db->free_result($resault);
?>
当id = 1 输出aaa 当id=2输出b 当id=3 输出h 当id=4 输出i 。
在这里要注意的是,两个数据库连接用户名,帐号,权限都要测试正常了。否则有的时候出错了找不到在哪。

原载于:本文原载于www.forasp.cn

·上一篇:php反射API-2 >>    ·下一篇:PHP获取表单textarea数据换行 >>
推荐文章
最新文章