29、微服务性能优化与架构权衡:缓存、自动伸缩与 CAP 定理解析

微服务性能优化与架构权衡:缓存、自动伸缩与 CAP 定理解析

缓存的多面应用

在服务交互中,无论是否选择 HTTP 作为服务间协议,客户端缓存以及减少往返客户端的需求都非常有价值。了解如何向客户端提供提示,帮助其确定缓存时间,是优化的关键。

  1. 写入缓存
    写入缓存虽不如读取缓存常用,但在某些场景下很有意义。例如,使用写后缓存(write-behind cache)时,可先将数据写入本地缓存,之后再刷新到下游数据源(可能是数据的规范源)。这在处理突发写入或同一数据多次写入时很有用,还能作为进一步的性能优化手段。若写后缓存中的缓冲写入具有持久性,即使下游服务不可用,也可将写入请求排队,待服务恢复后再发送。
  2. 弹性缓存
    缓存可用于实现故障恢复能力。客户端缓存可在下游服务不可用时,使用缓存的可能过时的数据。也可使用反向代理提供过时数据。对某些系统而言,提供过时数据比不返回结果要好,但这需要根据实际情况判断。为缓解缓存中无请求数据的问题,可采用定期爬取现有实时网站生成静态版本的技术,在故障时显示该版本。
  3. 隐藏源服务
    正常缓存中,缓存未命中时请求会到源服务获取数据,调用者会阻塞等待结果。若发生大规模缓存未命中(如缓存机器故障),大量请求会冲击源服务。对于提供高可缓存数据的服务,源服务通常只按处理部分流量进行扩展。为保护源服务,可让源服务在需要时异步填充缓存。缓存未命中触发事件通知源服务重新填充缓存,若整个分片消失,可在后台重建缓存。为保持系统稳定,可快速失败原始请求。
  4. 保持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值