高并发系统

一些基本记录

  1. 数据库层面用 for update 或者 ...where xxx-1>=0 可控制不超发
  2. 令牌桶,放于redis之类中,拿到令牌的才能下一步操作数据库等
  3. 防止多次请求:
    用户层面 防止多次点击刷新,客户端做一定限制。
    利用redis : key的有效期(EX) 和 当键不存在时才设置键(NX)机制 限制频率
    如: set key value EX 5 NX
    代表 如果有这个value(比如userID)则插入失败, 否则插入,该value有效期5s
    注意:EX NX在java中写的时候不要分开。 可能有问题,避免永不过期。 性能不好
    stringRedisTemplate中有execute(new RedisCallback.....) 可执行更详细的命令
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可...
    高级java架构师阅读 704评论 0 5
  • 最近一直都在研究压力测试客户端的问题,如果突破客户端压力测试线程,端口等问题,如果服务器端处理网络请求处理不过来,...
    望月成三人阅读 8,691评论 1 25
  • 摘要:在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。而有些场景并不能用缓存和降级来解决,因此需有一种...
    落羽成霜丶阅读 2,188评论 0 18
  • 聊聊高并发系统限流特技-1来自开涛的博客 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是...
    meng_philip123阅读 6,714评论 1 20
  • 系统在设计之初就会有一个预估容量,长时间超过系统能承受的TPS/QPS阈值,系统可能会被压垮,最终导致整个服务不够...
    FX_SKY阅读 986评论 0 0