飞鸿无痕 发表于 2010-10-30 09:33

回复 39# luwenju


    老人家不敢当,哈哈,你这个就是主主同步的设置了,两台机子互为主从!如果后面有从服务器,请开启log-slave-updates,把同步的更新写入二进制日志中去!

luwenju 发表于 2010-10-30 09:37

回复 41# 飞鸿无痕


“如果后面有从服务器,请开启log-slave-updates”

如果后面有从服务器的话怎么设置啊?前面可是有两个主呢

luwenju 发表于 2010-10-30 09:41

回复 1# 飞鸿无痕


其实部署要求是这样的:一主两从,一个主负责写,两个从负责读;当主挂掉时,从接管


昨天你告诉我MMM可以,但是我看一下MMM,中文资料相当的少。。

飞鸿无痕 发表于 2010-10-30 09:43

回复 42# luwenju

这个问题,因为两个主库的数据是一样的,你可以选择其中一个主库做该从库的主库,也可以lvs监听的那个虚拟IP做主库,这样,如果选择后者当主库出现问题的时候可以不用去手动更改!如果你运气不好,选择了从其中一个主库挂掉就得手动转到另外一个库!

飞鸿无痕 发表于 2010-10-30 09:45

回复 43# luwenju


    用于生产还是建议用mmm架构,那个架构相对来讲成熟了很多!mmm的资料应该很多吧,我没有具体实施过那个架构,呵呵!

luwenju 发表于 2010-10-30 09:51

回复 45# 飞鸿无痕


用LVS那个后面再加从服务器我明白了嘿嘿   太感谢了


MMM真能实现这个要求吗?-----------------“一主两从,一个主负责写,两个从负责读;当主挂掉时,从接管”

飞鸿无痕 发表于 2010-10-30 10:18

回复 46# luwenju


    mmm架构只是让设置浮动IP让你的服务器挂了另一个马上接管,读写分离应该通过别的工具实现,比如:mysqlproxy,或者程序实现,或者amoeba

luwenju 发表于 2010-10-30 10:57

回复 47# 飞鸿无痕


嗯    谢谢兄弟{:3_183:}

飞鸿无痕 发表于 2010-11-04 11:32

回复 36# luwenju

今天又研究了下关于切换的问题,如果你设置的主从,这样切换会出现问题,应为如果主停掉,由于default pool中只有一个master,所以会报如下错误:
mysql> java.lang.Exception: poolName=master, no valid pools
      at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:174)
      at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:571)
      at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:104)
      at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2.run(MysqlClientConnection.java:231)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)
因为你的那个pool没有可用的机器,又是你的default pool设置所以出现问题,解决办法是设置成主主同步,在master上设置两台mysql主服务器,这样如果一台出现问题就会把写入操作都转换到另外一台,当故障的主机回复以后又会两个都会写入!测试的结果是几秒就能完成切换,很快,不影响服务!配置如下:

                  <dbServer name="master" virtual="true">
                        <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                              <property name="loadbalance">1</property>
                              <property name="poolNames">server1,server2</property>
                        </poolConfig>
                </dbServer>

               <dbServer name="slave" virtual="true">
                        <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                              <property name="loadbalance">1</property>
                              <property name="poolNames">server1,server2</property>
                        </poolConfig>
                </dbServer>

luciferlili 发表于 2011-02-10 15:48

怎么没有人继续研究amoeba了呢?关于amoeba的性能测试如何啊?有没有这方面的报告啊?
页: 1 2 3 4 [5] 6
查看完整版本: 【原创】Amoeba搞定mysql主从读写分离