• 波多黎各仔
    2023-09-13 来自江苏
    请教下老师,在真实的场景下,真的会采取上述说的几个基本解决方案吗?我是感觉做好限流就好了啊,比如说,缓存穿透的解决方案是给个默认值,但是攻击者可以找个没有缓存的接口来攻击,那样就没辙了。

    作者回复: 如果你的服务本身,不存在数据库查询扩散的问题,那么服务直接限流就可以了。也就是说,调用你的服务一次,只会读缓存一次。那么有一些批量接口是不满足这个条件的。当然这也是有前提条件的,就是你的数据库在正常流量全部缓存未命中的时候,能够撑住。但是高并发服务也是不满足这个前提的。 正常来说,我至少会利用 ORM 来搞个限流,直接基于本地内存的限流就够了。只有在一些很罕见的场景我才会用更加复杂的方案。毕竟我也是一个懒人,不出 BUG 谁去管。

    
    
  • Johar
    2023-09-08 来自重庆
    老师,redis集群一般都是cluster或者sentinel方式部署,主节点故障,自动切换到从节点就行,你说的是不是机房故障?

    作者回复: 对,整个不可用!

    
    
  • peter
    2023-09-08 来自河南
    请教老师几个问题: Q1:Java对布隆过滤器有缺省实现吗?拿来就用的那种。 Q2:MySQL一般能承受多大的QPS? Q3:系统在设计的时候,需要考虑黑客攻击吗?比如我准备开发一个网站,除了考虑正常并发以外,还需要考虑黑客攻击的流量吗?

    作者回复: 1. 直接调用 Redis API 就可以,低版本 Redis 就得自己手写了; 2. 这个看你的机器性能 3. 需要,一般都需要。你要相信互联网每一个人都不怀好意。

    
    