请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

读写分离

目前我有一个业务是在某一时刻会执行定时任务对数据库有3-5分钟的操作,期间外部访问数据库的时候,网站会短时间访问数据库错误,获取不到数据,我现在想法是采用读写分离的机制,外部读取的是主库,而定时任务操作从库,不知道读写分离后,主从库同步的过程会不会出现那种数据库无法同步,或者外网无法访问的情况

正在回答

1回答

阿拉尔小菜哥你好:

    首先,我们需要确认一件事,在执行定时任务期间,外部访问数据库会是怎么样的访问呢?是读还是写呢?如果是读,这个完全是可以接受的,最多就是数据达不到强一致性的(实际上,这是业务规则的限制,这不可避免)。如果是写,那么,定时任务是否加锁了呢?

    (1)定时任务加了互斥锁,这时外部的操作肯定会失败,需要做的是提醒外部访问隔断时间再次重试即可

    (2)定时任务加了读写锁,除非操作的是同一个记录,否则,不会有任何影响

    那么,你这里所说的读写分离是合适的吗?显然,不合理。从库在数据库集群中发挥的作用只是同步主库的数据,以及不保证数据强一致性的读。从库绝对不会担当写的责任。写数据一定是主库,这是主从最大的区别之一。

    其实,很容易理解,一旦从库负责写,那么,数据一致性几乎是不可能的了。


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信