用中间件实现读负载均衡的数据库群集
用中间件实现读负载均衡的数据库群集
一般地数据库有70%的读数据事务,只有30%不到的写数据事务,数据库一般就是卡在读数据事务太多,
因此用中间件实现读负载均衡的数据库群集是非常有意义的事。事实上数据库的写负载均衡是不可能存在的,所以不用考虑。
读负载均衡如何实现?
中间件维护一个数据库的配置列表(数据库名、IP地址、端口号、帐号、密码、负载情况)。
中间件日志监控一切SQL命令。
中间件监控到准备执行:select * from t1 这种读数据事务之前,先根据负载均衡算法选取一个待读数据的数据库,然后读数据。
如何向数据库群集写数据?
对于实时性要求不高的,可以采取只向主数据库写数据,然后通过数据库自身提供的复制、镜像等技术实现主、从数据库之间数据同步。
注意:这种方式,主、从数据库之间的数据同步是有延时的。
对于实时性要求非常高的,中间件监控到准备执行:INSERT\DELETE\UPDATE 这种写数据事务,通过前面所说的中间件维护的一个数据库的配置列表,
依次分别写数据到各数据库中,写的时候,要么都成功,要么都失败并回滚。
如果是存储过程中有INSERT\DELETE\UPDATE 这种写数据事务,该如何办?
除非能监控数据库的SQL日志了,否则很不好办。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/7566619.html
分类:
咏南开发框架
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2016-09-21 IOCP数据中间件