摘要:
缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有 阅读全文
摘要:
正文 在开发AspNet Core应用的时候,我们经常会为该应用公布一个特殊的检测接口出来。该接口的目的很简单,告诉外界程序当前程序现在是可以访问或者不能访问的,便于外界做出相应的操作,比如监控报警,页面通知用户稍作等待等。 在AspNet Core 2.2 之前,如果我们要实现一个这样的检测接口, 阅读全文
摘要:
场景 一个对象A,希望它的某些状态在发生改变时通知到B(或C、D)。常见的做法是在A中定义一个事件(或委托),当状态改变时A去触发这个事件。而B直接订阅这个事件 这种设计有点问题,B由于要订阅A的事件,所以B得完全引用A,其实有时候没必要,因为我只关心A的状态变化而已 解决方案就是加个中间层Chan 阅读全文