使用amoeba实现数据分割mysql读写分离

(3)使用amoeba实现数据分割,更高层次的读写分离

继续从上面的使用amoeba实现读写分离已配置的的再进行配置:

(client,proxy,two master,two slave服务器 至少6台虚拟机)

 

    水平分割:将关键字段按特定的算法存放到不同的服务器
    垂直分割:将数据按业务的不同分别保存到不同的服务器  

QQ截图20150724154840.png


  水平分割 

   # 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" />

你可能感兴趣的:(配置详解)