面试题答案
一键面试- 最终一致性方案
- 原理:系统允许数据存在一定时间的不一致状态,但经过一段时间后,数据会达到一致。例如,在电商系统的库存更新场景中,当用户下单后,库存的减少操作可能不会立即同步到所有节点。系统先记录下单操作,保证可用性,之后通过异步任务(如消息队列)逐步将库存更新同步到各个节点,最终使库存数据达到一致。这样既保证了用户下单时系统的高可用性,又在一定时间后确保了库存数据的一致性。
- 读写分离并结合缓存方案
- 原理:将读操作和写操作分离到不同的服务器。写操作直接作用于主数据库,读操作从从数据库或缓存获取数据。对于一致性要求不高的读操作,优先从缓存读取数据,这样可以极大提高系统的响应速度和可用性。当数据发生写操作时,更新主数据库,同时更新缓存。为了优化一致性,可设置缓存的过期时间,让缓存数据在一定时间后失效,之后读操作会从数据库获取最新数据,从而保证数据的最终一致性。例如在新闻资讯网站,文章发布后先更新主数据库,同时更新缓存。缓存设置较短过期时间,在过期前用户读取的是缓存中的旧数据,但过期后能获取到数据库中的最新数据。