Galera是MySQL的一个同步复制解决方案,也就是说,完全不会丢失数据。相比于MySQL的异步复制和半同步复制,galera提供的是更好的读扩展,但是对于写,Galera没办法提供扩展。galera随着集群的增加,写入速度也会随之降低。由此可知,若是读操作远大于写操作,那么用galera十分合适。
场景描述:我公司有一个系统,需求是会有大量的人群进行查询工作,查询数据必须是实时数据,不能有延迟。同时公司每天还需要生成报表,这个报表是要看趋势,所以并不需要实时数据。怎样设计这样的数据库看看高可靠解决方案?
我知道的一种方案: 用两节点的galera集群做高可靠,还有一个普通节点从galera集群获取数据,异步复制。如下图所示。在galera的节点上面可以分布更新操作,查询实时数据操作,查询操作还可以在Galera_1和Galera_2上做负载均衡等。在单独的 MySQL 节点上面可以做一些复杂的操作,比如说报表生成等。这样就可以避免复杂查询影响正常业务的情况。同时,galera_1是Galera_2的备份,在galera_2失效的时候,可以切换到galera_1继续提供服务。