Redisson实现分布式限流

通过使用Redisson的RRateLimiter实现对接口的访问限流,这种限流方式属于业务端限流,更加方便,更加灵活,可根据不同的业务进行调整。

Redisson的限流是基于令牌桶算法实现的,除了能够起到限流的作用外,还允许一定程度的流量突发。

for、foreach、iterator小坑

在使用for、foreach和iterator时,三者存在一些区别,当我们在遍历中对遍历对象进行修改时,会出现问题。

在开发中要避免在遍历中队遍历对象进行修改,如果需要,应该使用iterator安全地对对象进行删除操作

Redisson 实现分布式锁

当我们的项目部署在多个服务器下时,有时会遇到一段代码只需要在一段时间内只需要执行一次的情况。此时就需要使用来实现,而java中的synchronized锁只是针对单个JVM实例的锁,在分布式的环境下无法无能为力。

实现分布式锁的方式有多种:

  • 基于数据库(唯一索引)
  • 基于缓存(Redis,memcached,tair)
  • 基于Zookeeper

这里主要学习使用Redis来实现分布式锁