博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读写分离无效的大坑(新使用数据库读写分离的同学可以参考)
阅读量:6590 次
发布时间:2019-06-24

本文共 572 字,大约阅读时间需要 1 分钟。

hot3.png

前置条件,自己已经实现了mysql的主从复制和读写分离(atlas或者mycat),会遇到的问题

1.刚修改后的数据,立马查询是可能不一致的,因为数据同步是需要时间的,好多开发人员会忽略这一点

 解决办法:

    (1)开启方法事务,读写分离默认事务操作只会走主库,这里就要考虑到主库的压力问题

    (2)通过代码逻辑尽量避免修改库后立马查询的操作(一般采取这种方式)

2.注意开发框架的事务配置(java 举例),一般我们会在配置文件配置某些约定的方法名字前缀开启不同的事务(或者不开启),但现在随着注解事务的流行,好多开发人员(或者架构师)搭建框架的时候在service类上加上了@Transactional注解,导致整个类都是开启事务的,这样严重影响数据库执行的效率,更重要的是开发人员不重视、或者不知道在查询类的方法上面自己加上@Transactional(propagation=Propagation.NOT_SUPPORTED)就会导致,所有的查询方法实际并没有走从库,导致主库压力过大

 解决办法:根据service方法类型(写多还是读多)来家Transaction的注解,每个方法加自己单独的注解,但不建议,推荐约定不同的方法名前缀控制注解。

 

 

转载于:https://my.oschina.net/haitaohu/blog/2874758

你可能感兴趣的文章
luoguP4841 城市规划
查看>>
Python3 - 时间处理与定时任务
查看>>
mybatis 基础_mybatis介绍
查看>>
Android错误之New package not yet registered with the system
查看>>
自我介绍
查看>>
python实战,
查看>>
visual studio 多行编辑 列编辑
查看>>
shuoj 418 丢史蒂芬妮(素数筛+sg函数)
查看>>
Codeforces Round #469 (Div. 2)
查看>>
常用网络设备
查看>>
转:深入理解Java G1垃圾收集器
查看>>
生成器和装饰器
查看>>
[Java基础]Java异常捕获
查看>>
math --- CSU 1554: SG Value
查看>>
ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
查看>>
数组-去重、排序方法、json排序
查看>>
wp7 断点续传
查看>>
Js跳转网页的几种方法
查看>>
Vagrant使用
查看>>
python 查看与更换工作目录
查看>>