当前位置: 首页 > news >正文

户网站开发的小公司如何做一个个人做网站

户网站开发的小公司,如何做一个个人做网站,四川移动端网站建设,个人注册公司费用⛰️个人主页: 蒾酒 #x1f525;系列专栏#xff1a;《spring boot实战》 #x1f30a;山高路远#xff0c;行路漫漫#xff0c;终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…  ⛰️个人主页:     蒾酒 系列专栏《spring boot实战》 山高路远行路漫漫终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前面 本文介绍了springboot开发后端服务中高并发接口限流设计与实现坚持看完相信对你有帮助。 同时欢迎订阅springboot系列专栏持续分享spring boot的使用经验。 内容简介 本文介绍了一种使用自定义注解结合拦截器和redis实现接口限流方法。这种方法也是企业常用方法是一种比较优雅的解决方案。 优点分析 灵活性和可定制性 通过自定义注解和拦截器可以根据具体的业务需求灵活定义限流规则满足不同接口的限流需求。 性能优化 使用Redis等高性能缓存数据库存储限流计数器能够有效减轻应用程序的压力提高系统的性能表现。 实时性和持久性 Redis具有较高的读写性能可以实时更新限流计数器并且数据持久化保证限流规则的持久性。 分布式支持 对于分布式系统使用Redis等分布式缓存数据库可以方便地实现跨节点的限流策略和计数器共享确保限流的准确性和一致性。 成熟稳定 这种方法经过实践验证在众多企业项目中得到广泛应用被认为是一种成熟、稳定且可靠的解决方案。 实现思路 通过自定义一个注解标注需要进行限流的接口方法通过拦截器对标记改注解的方法进行拦截处理 将同一ip访问同一接口的次数缓存到redis,拦截器中进行判断处理达到访问阈值直接拒绝。 实现步骤 1.自定义限流注解 import java.lang.annotation.*;/*** author mijiupro*/ Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Inherited Documented public interface AccessLimit {int limit() default 10; // 限流阈值int seconds() default 60; // 时间窗口 } 2.编写限流拦截器 /*** 接口限流拦截器* author mijiupro*/ Slf4j Component public class AccessLimitInterceptor implements HandlerInterceptor {private final StringRedisTemplate redisTemplate;public AccessLimitInterceptor(StringRedisTemplate redisTemplate) {this.redisTemplate redisTemplate;}Overridepublic boolean preHandle(NotNull HttpServletRequest request, NotNull HttpServletResponse response, NotNull Object handler) {if (!(handler instanceof HandlerMethod handlerMethod)) {return true;}Method method handlerMethod.getMethod();AccessLimit accessLimit method.getAnnotation(AccessLimit.class);// 若方法上没有AccessLimit注解直接放行if (accessLimit null) {return true;}int limit accessLimit.limit();int seconds accessLimit.seconds();String key generateKey(request); // 生成限流key// 使用基本类型long接收计数值并确保不会因自动装箱产生NullPointerExceptionLong countResult redisTemplate.opsForValue().increment(key, 1);long currentCount countResult ! null ? countResult : 0;if (currentCount 1) {// 如果是第一次访问设置过期时间redisTemplate.expire(key, seconds, TimeUnit.SECONDS);log.debug(设置访问限制计数为1{}, key);return true;}if (currentCount limit) {log.error(访问超过限制{}, key);throw new RateLimitException(ResultEnum.ACCESS_LIMIT_REACHED);}log.debug(访问限制计数递增{}, key);return true;}private String generateKey(HttpServletRequest request) {// 组合key的方式可以根据实际业务需要调整例如考虑方法名称、用户ID等return request.getRemoteAddr() : request.getContextPath() : request.getServletPath();}} 3.注册拦截器 Configuration public class WebConfig implements WebMvcConfigurer {private final AccessLimitInterceptor accessLimitInterceptor;public WebConfig( AccessLimitInterceptor accessLimitInterceptor) {this.accessLimitInterceptor accessLimitInterceptor;}Overridepublic void addInterceptors(NotNull InterceptorRegistry registry) {//添加上接口限流拦截器使之生效registry.addInterceptor(accessLimitInterceptor).order(0);} } 4.接口限流测试 随便写个接口标记限流注解进行测试 这里使用swagger3进行测试 Spring Boot3整合knife4j(swagger3)_springboot3 knife4j-CSDN博客文章浏览阅读2.1k次点赞39次收藏52次。Knife4j · 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j (xiaominfo.com)作者的使用的spring boot 3.2.2为当前最新版所以依赖导入最新的knife4j 4.4.0。3.1 增强模式 | Knife4j (xiaominfo.com)好一个spring boot项目且版本为3X项目可正常启动。快速开始 | Knife4j (xiaominfo.com)接下来配置以下接口文档的作者等信息。Tag注解标记接口类别。_springboot3 knife4jhttps://blog.csdn.net/qq_62262918/article/details/135761392?spm1001.2014.3001.5502 GetMapping(/get-int)AccessLimit( limit 5, seconds 60)public Integer getInt() {return 1;} 前五次访问 第六次访问 写在最后 spring boot3自定义注解拦截器Redis实现高并发接口限流到这里就结束了本文介绍了一种常见的实现方法。任何问题评论区或私信讨论欢迎指正。
http://www.dnsts.com.cn/news/167995.html

相关文章:

  • 找最新游戏做视频网站湖南网站优化代运营
  • 在线网站代理浏览静态网站开发与实施的论文
  • 泸州市建设工程管理局网站网站软件下载安装
  • 广州外贸营销网站建设公司详情页设计方法
  • 长沙有哪些网站建设公司ss和wordpress
  • 宜昌做网站公司有哪些方法企业管理咨询顾问
  • 专业网站制作哪家专业私人私密浏览器免费下载
  • 产品发布网站的装饰怎么做青岛做优化网站哪家好
  • 手机网站和电脑网站一样吗金融 网站建设
  • 新网站seo优化国外网络推广
  • 烟台海阳市专业做网站邮箱qq登录入口
  • 卡地亚手表官方网站怎么做属于自己的免费网站
  • 请人用wordpress建站假期广告设计公司起名字
  • 网站建设品牌营销网站开发需要多少钱
  • 吉林北京网站建设移动端网站开发项目报告
  • 自助手机建站系统有服务器数据库怎么安装wordpress
  • 深圳网站设计(深圳信科)网络推广公司有多少家
  • 企业网站优化的方式网站怎样做才能有点击率
  • 杭州 seo网站建设 网络服务wordpress如何使用父导航可点击
  • 唐山哪里建设网站好公司销售管理系统
  • 网站服务器购买价格腾讯云搭建单窗口单ip
  • 公司建设网站的步骤搭建网站怎么挣钱
  • 千图网素材下载网站好友介绍网站怎么做
  • 直播网站的建设深圳福田建设局网站首页
  • 安徽网站关键字优化域名备案信息查询官网
  • 百元做网站白云网站建设
  • 婚庆公司网站建设得多少钱昆明网站
  • 微网站平台专业建站公司推荐
  • 做刷单网站违法吗建立网站专业公司
  • 企业网站如何找词价格合理的网站建设