负载均衡
为了解决以上问题,我们将继续优化架构,在应用程序和中间件之间增加proxy代理,由代理来完成负载均衡的功能,应用程序只需要对接到proxy即可。
proxy分发可以是随机也可以是轮循
中间件比代理做的事情要多,代理只做转发,压力小。
PXC集群架构
在前面的架构中,都是基于MySQL主从的架构,那么在主从架构中,弱一致性问题依然没有解决,如果在需要强一致性的需求中,显然这种架构是不能应对的,比如:交易数据。
PXC提供了读写强一致性的功能,可以保证数据在任何一个节点写入的同时可以同步到其它节点,也就意味着可以存 其它的任何节点进行读取操作,无延迟。
架构如下:
缺点:数据到pxc时,事务没有提交,在所有的pxc节点完成同步后,完成事务的提交;这里是牺牲了性能来保证数据换一致性,pxc集群的数量越多性能就越差。
- 尽可能的控制PXC集群的规模,节点越多,数据同步速度越慢
- 所有PXC节点的硬件配置要一致,如果不一致,配置低的节点将拖慢数据同步速度
- PXC集群只支持InnoDB引擎,不支持其他的存储引擎
混合架构
在前面的PXC架构中,虽然可以实现了事务的强一致性,但是它是通过牺牲了性能换来的一致性,如果在某些业务场景下,如果没有强一致性的需求,那么使用PXC就不合适了。所以,在我们的系统架构中,需要将这两种方式综合起来,这样才是一个较为完善的架构