(3)使用amoeba实现数据分割,更高层次的读写分离
继续从上面的使用amoeba实现读写分离已配置的的再进行配置:
(client,proxy,two master,two slave服务器 至少6台虚拟机)
水平分割:将关键字段按特定的算法存放到不同的服务器
垂直分割:将数据按业务的不同分别保存到不同的服务器
水平分割
# cd /usr/local/amoeba/conf/
# vim rule.xml
#sxjy数据库下的stu表 #看上图 可知master1,2是水平分割
<tableRule name="stu" schema="sxjy" defaultPools="master1,master2">
<rule name="rule1">
<parameters>id</parameters>
<expression><![CDATA[ id % 2 == 0 ]]></expression>
<defaultPools>master1</defaultPools>
<readPools>slave1</readPools>
<writePools>master1</writePools>
</rule>
<rule name="rule2">
<parameters>id</parameters>
<expression><![CDATA[ id % 2 == 1 ]]></expression>
<defaultPools>master2</defaultPools>
<writePools>master2</writePools>
<readPools>slave2</readPools>
</rule>
</tableRule>
垂直分割
<tableRUle name="user_info" schema="blog" defaultPools="master1" />
<tableRUle name="user_info" schema="webchat" defaultPools="master2" />