SpringBoot如何通过MySQL实现高效读写分离的详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2163个文字,预计阅读时间需要9分钟。
目录+前言+一、从数据源配置+二、数据源路径配置+三、数据源上下文环境+四、切换注释与AOP配置+五、用法及测试+六、总结+前言+首先思考一个问题:在高度并发的场景中,如何高效地处理数的问题?
目录
- 前言
- 一、主从数据源的配置
- 二、数据源路由的配置
- 三、数据源上下文环境
- 四、切换注解和Aop配置
- 五、用法以及测试
- 六、总结
前言
首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少读写冲突、释压数据库负载、保护数据库的目的。在实际的使用中,凡是涉及到写的部分直接切换到主库,读的部分直接切换到读库,这就是典型的读写分离技术。本篇博文将聚焦读写分离,探讨如何实现它。
主从同步的局限性:这里分为主数据库和从数据库,主数据库和从数据库保持数据库结构的一致,主库负责写,当写入数据的时候,会自动同步数据到从数据库;从数据库负责读,当读请求来的时候,直接从读库读取数据,主数据库会自动进行数据复制到从数据库中。
不过本篇博客不介绍这部分配置的知识,因为它更偏运维工作一点。
这里涉及到一个问题:主从复制的延迟问题,当写入到主数据库的过程中,突然来了一个读请求,而此时数据还没有完全同步,就会出现读请求的数据读不到或者读出的数据比原始值少的情况。
本文共计2163个文字,预计阅读时间需要9分钟。
目录+前言+一、从数据源配置+二、数据源路径配置+三、数据源上下文环境+四、切换注释与AOP配置+五、用法及测试+六、总结+前言+首先思考一个问题:在高度并发的场景中,如何高效地处理数的问题?
目录
- 前言
- 一、主从数据源的配置
- 二、数据源路由的配置
- 三、数据源上下文环境
- 四、切换注解和Aop配置
- 五、用法以及测试
- 六、总结
前言
首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少读写冲突、释压数据库负载、保护数据库的目的。在实际的使用中,凡是涉及到写的部分直接切换到主库,读的部分直接切换到读库,这就是典型的读写分离技术。本篇博文将聚焦读写分离,探讨如何实现它。
主从同步的局限性:这里分为主数据库和从数据库,主数据库和从数据库保持数据库结构的一致,主库负责写,当写入数据的时候,会自动同步数据到从数据库;从数据库负责读,当读请求来的时候,直接从读库读取数据,主数据库会自动进行数据复制到从数据库中。
不过本篇博客不介绍这部分配置的知识,因为它更偏运维工作一点。
这里涉及到一个问题:主从复制的延迟问题,当写入到主数据库的过程中,突然来了一个读请求,而此时数据还没有完全同步,就会出现读请求的数据读不到或者读出的数据比原始值少的情况。

