既然要通过IP约束用户对接口的访问频次,我们需要首先存储用户用户的IP信息,这里采用ThreadLocal用来存储用户的IP信息,对每个用户的IP获取这里通过定义一个拦截器来采集用户的IP信息。相关代码如下:
ThreadLocal定义:
拦截器定义及使用:
这里值得注意的是如何解决访问频次的问题,在单机的情况下好解决定义一个容器即可,在分布式的情况下每一个服务器是相互隔离的,这里采用redis来解决多机器下的接口约束。
与全局的接口约束方法一致,通过定义一个切面实现相关的业务代码,
既然要通过IP约束用户对接口的访问频次,我们需要首先存储用户用户的IP信息,这里采用ThreadLocal用来存储用户的IP信息,对每个用户的IP获取这里通过定义一个拦截器来采集用户的IP信息。相关代码如下:
ThreadLocal定义:
拦截器定义及使用:
这里值得注意的是如何解决访问频次的问题,在单机的情况下好解决定义一个容器即可,在分布式的情况下每一个服务器是相互隔离的,这里采用redis来解决多机器下的接口约束。
与全局的接口约束方法一致,通过定义一个切面实现相关的业务代码,