解决方案
用来记录平时项目中遇到的需求问题,已经所采用的解决方案
weixin_42506330
这个作者很懒,什么都没留下…
展开
-
springdoc-swagger3,Authorization token授权头添加不生效问题
swagger3按照 swagger2的格式,添加授权请求头###但我们接口如果需要这么一个权限,使用的也是Authorization,该怎么办呢?继续查看文档,提供了一个解决方案:添加全局请求头信息只是这样还不够,还需要在每个接口上添加 Authorization 授权放行 security 参数,指定要放行的权限key打开swagger:点击授权登陆,填写 token参数...原创 2022-06-21 17:21:27 · 6477 阅读 · 0 评论 -
redis+lua实现简单的分布式接口限流器
需求:以用户为单位,对接口访问进行限制,上限要求:5次/秒,环境:服务器两台,redis一台,共用首先想到NGINX配置进行限流,但NGINX原生是基于IP进行限制的,现在要基于用户,user_id参数请求头传递,时间急,采用redis方案!1、最早方案:首次访问接口,插入redis,过期时间1S,1S期间每再次访问接口就新增,并判断,该方案直接被测试不通过,原因很简单,上一秒的后500ms请求3次,下一秒的前500ms请求3次,合计请求6次,已经超标了,但该方案只记录三次,失败!2、list记录用户原创 2020-11-16 17:51:14 · 182 阅读 · 0 评论 -
分布式锁@Shedlock解决集群定时任务问题@Scheduled,springboot
Shedlock是个分布式锁,大致实现,就是针对多个服务,提供一个公有的存储,来维护这个锁(类似悲观锁机制)因为拿不到就跳过本次执行这个策略,所以非常适定时任务(实际上就是为定时任务设计的),先看下不加锁,模拟集群、分布式(多套服务同一套代码) @Scheduled(cron = "0/5 * * * * ?") //@SchedulerLock(name = "qpsStatisticsTask", lockAtLeastForString = "PT60S", lockAtMost原创 2020-09-22 12:10:54 · 1591 阅读 · 0 评论