面试题答案
一键面试1. 缓存优化
- 优势:
- 高并发场景:能极大减轻后端数据源压力,快速响应大量请求,提升系统整体吞吐量。例如电商秒杀场景,大量用户请求商品信息,缓存可直接返回数据,避免数据库高负载。
- 对数据一致性要求不特别高场景:缓存可设置合理过期时间,允许一定时间内数据存在不一致情况,提升读取性能。如新闻资讯类应用,短时间内数据略有延迟更新对用户体验影响不大。
- 局限性:
- 对数据一致性要求极高场景:缓存存在过期策略、数据更新同步延迟等问题,难以保证数据绝对实时一致。如金融交易场景,每一笔资金变动都需准确无误,缓存不太适用。
- 数据更新频繁场景:频繁更新数据会导致缓存频繁失效和重建,降低缓存命中率,增加系统开销。
2. 数据库读写分离
- 优势:
- 高并发场景:读操作分摊到从库,减轻主库压力,提高系统并发处理能力。适合社交平台等读多写少的应用,大量用户浏览动态等读操作可由从库处理。
- 对数据一致性要求相对不高场景:从库数据同步可能存在短暂延迟,但对于多数读操作影响不大,可保证系统整体可用性和性能。
- 局限性:
- 对数据一致性要求极高场景:从库同步延迟可能导致读操作读到旧数据,无法满足严格的数据一致性需求。如银行转账后立即查询余额,要求数据必须准确最新。
- 写操作频繁场景:主库写压力仍较大,可能成为性能瓶颈,且写操作后从库同步延迟可能影响后续读操作。
3. 异步处理
- 优势:
- 高并发场景:将耗时操作异步处理,避免阻塞主线程,提升系统响应速度和并发能力。如订单处理系统,下单后发送短信、邮件通知等操作异步执行,不影响订单主流程处理。
- 对数据一致性要求不高场景:异步任务可在后台逐步处理,即使部分任务失败可重试,不影响整体业务流程。如日志记录,偶尔丢失几条日志对核心业务影响不大。
- 局限性:
- 对数据一致性要求极高场景:异步处理可能存在任务执行失败、顺序错乱等问题,难以保证数据严格一致性。如库存扣减与订单生成需强一致,异步处理可能导致库存与订单数据不一致。
- 实时性要求高场景:异步处理存在一定延迟,无法满足对结果实时获取的需求。如即时通讯消息需实时显示给用户。