因为没有定义具体的数据库,那就基于通用型的数据库讲一下数据一致性的问题吧
数据一致性分为强一致性和弱一致性
如果一些场景,比如支付,收款等对数据强一致性的要求,那就需要强一致性,在数据库层面,选择半同步复制,基于系统层面,采取锁机制,双写等策略,或者单纯的采取数据库中间件来控制。无论哪种方式,都是追求的数据一致性,大致采取两种比较简单的方法,1 半同步复制 ,等从库复制成功才返回写成功2 设一个key记录着一次写的数据,然后设置一个同步时间,如果在这个时间内,有一个读请求,看看对应的key有没有相关数据,有的话,说明数据近期发生过写事件,这样key的数据就继续读主库,否则就读从库