用中间件实现读负载均衡的数据库群集
用中间件实现读负载均衡的数据库群集
一般地数据库有70%的读数据事务,只有30%不到的写数据事务,数据库一般就是卡在读数据事务太多,
因此用中间件实现读负载均衡的数据库群集是非常有意义的事。事实上数据库的写负载均衡是不可能存在的,所以不用考虑。
读负载均衡如何实现?
中间件维护一个数据库的配置列表(数据库名、IP地址、端口号、帐号、密码、负载情况)。
中间件日志监控一切SQL命令。
中间件监控到准备执行:select * from t1 这种读数据事务之前,先根据负载均衡算法选取一个待读数据的数据库,然后读数据。
如何向数据库群集写数据?
对于实时性要求不高的,可以采取只向主数据库写数据,然后通过数据库自身提供的复制、镜像等技术实现主、从数据库之间数据同步。
注意:这种方式,主、从数据库之间的数据同步是有延时的。
对于实时性要求非常高的,中间件监控到准备执行:INSERT\DELETE\UPDATE 这种写数据事务,通过前面所说的中间件维护的一个数据库的配置列表,
依次分别写数据到各数据库中,写的时候,要么都成功,要么都失败并回滚。
如果是存储过程中有INSERT\DELETE\UPDATE 这种写数据事务,该如何办?
除非能监控数据库的SQL日志了,否则很不好办。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/7566619.html