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

网站开发研发工程师岗位职责自己怎么优化网站

网站开发研发工程师岗位职责,自己怎么优化网站,web.py做网站,电商网站增加客户目录 🍸前言 🍻一、实现方法 🍺二、伪代码实现 🍹三、章末 🍸前言 小伙伴们大家好,上次写了一篇文章记录了最近自己装台式电脑中遇到的问题,以及整体的安装步骤和本地的配置选择&#xff0c…

目录

🍸前言

🍻一、实现方法

🍺二、伪代码实现

🍹三、章末


🍸前言

        小伙伴们大家好,上次写了一篇文章记录了最近自己装台式电脑中遇到的问题,以及整体的安装步骤和本地的配置选择,文章链接如下:

【电脑组装】✈️从配置拼装到安装系统组装自己的台式电脑-CSDN博客

        这次继续更新平时开发时可能会使用到的常见技术,相信大家在开发时都会用到权限校验,通过此方式可以增强系统安全,比人使最常使用的校验工具就是JWT的token校验,就是通过后端服务器生成token,后续请求需要携带该参数进行校验;但是总会存在一部分接口不需要校验,但是就会面临接口被刷等问题 ,防刷接口也有很多解决方案,本地挑一个常见的 IP 限流,通过记录请求的所属地址,短时间内限制多次请求,这样可以实现简单的流量控制;

🍻一、实现方法

        这种实现方式有很多,就拿使用较多的 AOP 切面吧(因为最近了解到切面编程的另一种使用形式),在之前使用较多的方式是定义一个注解,在切面类中使用@Pointcut 标注刚自定义的注解,表示以下逻辑针对该注解起作用,然后在项目中需要使用的地方加上自定义注解即可;还有一种方式是鄙人最近在开发过程中淘到的,起因是要在原有的限流基础上改动一点逻辑,但是由于对项目的不熟悉,翻来翻去也没找到之前限流的入口(以为是自定义注解),最后在aop包下发现一个名字比较符合的类,LimitInterf...,点进去一看,很熟悉,就是切面类逻辑,但是又有一点不同,这里没有标明针对的注解,而是使用路径的方式来控制整个 controller 中的请求方法(怪不得请求层找不到相关注解)

🍺二、伪代码实现

        本地简单使用伪代码介绍下这种切面的实现方式,比较简单,看一下定义阶段即可;(为什么不展示完整实现并测试?因为鄙人最近在测试悟空,尤为过瘾不是...尤为紧迫,时间安排不过来...,醉翁之意不在酒,能ctrl C+V即可)

        代码结构如下:

        1.controller层请求进来后,首先获取该请求的路径,之后获取访问用户的ip,将请求路径拼接ip 作为唯一标识,到redis中查询访问次数,如果达到设置的上限,抛出异常提示已限制;如果是第一次访问,则设置相应的过期时间

        2.@Component 注解将当前类声明为组件,项目启动时会自动扫描

           @Aspect 注解是切面式编程中的重要注解,标明为切面逻辑类

        3.引入redis 作为分布式计数工具,用户每次访问都要记录并且将结果缓存到redis中,下次再访问时先进行是否达到限制

        4.注入Servlet工具,获取每次请求的具体路径,用来计数

        5. 

@Pointcut(value = "execution(* com.test.controller.app.*Controller*.*(..))")

这里是指包含test.controller 包下的所有以Controller结尾的类下的所有方法都需要经过该逻辑类校验(适用于统一管理下的切面实现,不用给每个请求方法上加注解)

@Component
@Aspect
@Slf4j
public class InterfaceLimitAspect {@Autowiredprivate RedissonClient redissonClient;@Autowiredprivate HttpServletRequest httpServletRequest;@Pointcut(value = "execution(* com.test.controller.app.*Controller*.*(..))")public void point() {}private final Integer INTERFACELIMITCOUNT = 10;private final Integer INTERFACELIMITTIME = 10;@Before("point()")public void before() {try {String servletPath = httpServletRequest.getServletPath();String ipAddr = IpUtil.getIpAddr(httpServletRequest);RAtomicLong atomicLong = redissonClient.getAtomicLong(servletPath + ":" + ipAddr);if (atomicLong.get() >= INTERFACELIMITCOUNT) {log.info("接口限流:{}", servletPath + ":" + ipAddr);throw new Exception("try later");} else {atomicLong.incrementAndGet();if (atomicLong.get() == 1) {atomicLong.expire(INTERFACELIMITTIME,TimeUnit.HOURS);}}} catch (Exception e) {log.error("接口限流异常", e);}}
}

🍹三、章末

        文章到这里就结束了~

http://www.tj-hxxt.cn/news/39694.html

相关文章:

  • 南宁如何做百度的网站seo课
  • asp动态网站开发总结bt磁力王
  • 汝州市文明建设门户网站百度服务中心人工24小时电话
  • 怎么做淘客网站全国疫情高峰感染高峰
  • 泰安网络科技有限公司电话企业关键词优化最新报价
  • 学做网站需要文化嘛免费软文网站
  • 织梦网站定制长沙网络推广平台
  • 好享购物官方网站购物线上平台推广方式
  • 公众号链接wordpress关键词排名优化营销推广
  • 深圳做网站公司 南山百度app官网下载
  • 现代简约风格装修效果图百度关键词相关性优化软件
  • 国内重大新闻事件2024上海优化公司
  • wordpress简单个人主题网站seo培训
  • 怎么免费做公司网站seo网络营销案例分析
  • 网站加入百度广告联盟百度排行榜风云
  • 第一页网站SEO百家联盟推广部电话多少
  • 公司做网站文案怎么写淘宝seo搜索引擎优化
  • wordpress新浪图床seo排名课程咨询电话
  • 俄罗斯做牙网站seo网站排名优化软件
  • 网站建设系统哪家好2023b站推广大全
  • 佛山做营销型网站建设4p营销理论
  • 网站多大怎么找一手app推广代理
  • 平面设计是做什么的工作杭州关键词优化测试
  • wordpress登入可见西安优化seo
  • wordpress用户注册收不到邮件襄阳seo推广
  • 做爰网站站长工具爱情岛
  • 安康做网站的公司南宁百度推广代理商
  • 南宁致峰网站建设厦门专业做优化的公司
  • 深圳龙华网站建设公司哪家好百度热议排名软件
  • 长沙产品网站建设搜索引擎优化seo网站