采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
目前我有一个业务是在某一时刻会执行定时任务对数据库有3-5分钟的操作,期间外部访问数据库的时候,网站会短时间访问数据库错误,获取不到数据,我现在想法是采用读写分离的机制,外部读取的是主库,而定时任务操作从库,不知道读写分离后,主从库同步的过程会不会出现那种数据库无法同步,或者外网无法访问的情况
阿拉尔小菜哥你好:
首先,我们需要确认一件事,在执行定时任务期间,外部访问数据库会是怎么样的访问呢?是读还是写呢?如果是读,这个完全是可以接受的,最多就是数据达不到强一致性的(实际上,这是业务规则的限制,这不可避免)。如果是写,那么,定时任务是否加锁了呢?
(1)定时任务加了互斥锁,这时外部的操作肯定会失败,需要做的是提醒外部访问隔断时间再次重试即可
(2)定时任务加了读写锁,除非操作的是同一个记录,否则,不会有任何影响
那么,你这里所说的读写分离是合适的吗?显然,不合理。从库在数据库集群中发挥的作用只是同步主库的数据,以及不保证数据强一致性的读。从库绝对不会担当写的责任。写数据一定是主库,这是主从最大的区别之一。
其实,很容易理解,一旦从库负责写,那么,数据一致性几乎是不可能的了。
我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!
非常感谢!
登录后可查看更多问答,登录/注册
掌握业务开发中各种类型的坑,,Java web开发领域通用
1.7k 4
1.2k 3
1.0k 12
1.0k 2
1.7k 3