关于Mycat主从环境的问题?

来源:18-4 Mycat实现读写分离-配置与使用

慕容1401898

2024-01-26

老师,如果这里的mycat的配置的读写分离我有两个问题。希望老师指点一下
1.如果我的读写分离配置的是一主来写,三从来负责读。如果我的主节点挂了,是否支持从节点的重新选举来承接主节点负责写呢?
2.还有就是如果我的主节点和从节点如果在不同的机房里边的话,我们都知道机房同步是会有延迟的,如果这个时候主节点写进去了,在还没有来得及向从节点进行同步的话主节点就已经挂了。这个时候是否有好的解决方案?

写回答

1回答

Er十七

2024-02-06

1、一般我们都会配置从节点是readonly的,确保写操作都在主库上,保证从库接收到写操作造成的数据不一致。所以依赖mycat做单主多从的故障切换一般不可行。可以配置多主多从,多主的

情况下,mycat可以在第一个主挂掉后,选择第二个主做写操作。 switchType = 1表示自动切换。

<dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="oracle" dbDriver="jdbc" switchType="1" slaveThreshold="100">

<!--心跳sql-->

<heartbeat>select 1 from dual</heartbeat>

<writeHost host="hostM1" url="jdbc:oracle:thin:@192.168.157.129:1521:oracle11" user="scott" password="kmvcOrc.2019">

<!--<readHost host="slave1" url="jdbc:oracle:thin:@192.168.157.128:1521:oracle11" user="yxc" password="yxc" />-->

</writeHost>

<writeHost host="hostM2" url="jdbc:oracle:thin:@192.168.157.128:1521:oracle11" user="yxc" password="yxc" />

</dataHost>

2、当前主从同步,主写进去了,从没有的问题还是一个常见问题。以下集中常见方案:

第一种,允许短暂时间的数据不存在,当主库重新连接了之后,还是可以从数据库从主数据库的binlog中同步到数据。

第二种,半同步复制, 5.5集成到mysql,以插件的形式存在,需要单独安装,这种方式确保事务提交后binlog至少传输到一个从库了,会有一定的性能影响。

0
0

Java主流分布式解决方案多场景设计与实战

本课程是一门关于分布式系统下常见的解决方案的课程

178 学习 · 49 问题

查看课程