# 《分布式IM系统》大后端平台-通用模型-第07节:资源访问校验规则的设计和实现

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/15OjSS7cQ (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★☆☆☆
  • 本节重点:基于通用拦截器规则链设计和实现资源访问的校验规则,掌握资源访问校验规则的设计和实现,掌握在通用拦截器规则链上新增具体校验规则的方法,并能够将其灵活应用到自身实际项目中。
  • 课程视频:https://t.zsxq.com/15OjSS7cQ (opens new window)

大家好,我是冰河~~

大后端平台作为用户访问分布式IM即时通讯系统的入口,在某种程度上,其访问流量是不容忽视的,为了避免高并发大流量的场景压垮大后端平台,我们已经实现了滑动窗口IP校验规则,除此之外,还可以实现更细粒度的校验规则。

注意:有关各种限流的架构设计和落地方案,在《Seckill秒杀系统》 (opens new window) 专栏中有详细的介绍,包括:单机限流、分布式流控、业务网关限流、流量网关限流等。大家系统性可以学习《Seckill秒杀系统》 (opens new window) 中的限流架构设计和落地方案,这里不再赘述。

# 一、前言

在前面的文章中,我们设计和实现了通用的拦截器规则链,并基于通用的拦截器规则链实现了XSS漏洞校验规则和滑动窗口IP校验规则,尽最大程度避免系统出现XSS漏洞和保护系统的稳定性。考虑到只是对IP进行滑动窗口限流的话,粒度还是太粗,我们还可以实现一些更细粒度的限流策略。

# 二、本节诉求

基于通用拦截器规则链设计和实现资源访问的校验规则,掌握资源访问校验规则的设计和实现,掌握在通用拦截器规则链上新增具体校验规则的方法,结合自身实际业务场景进行思考,并能够将其灵活应用到自身实际项目中。

# 三、资源访问校验规则

资源访问校验规则是拦截器规则链上一个针对高并发场景设计和实现的具体校验规则,加入资源访问校验规则的拦截器规则链的执行流程如图7-1所示。


可以看到,在拦截器规则链中新增具体的资源访问校验规则后,整体执行流程不变,请求只有通过拦截器规则链中所有的校验规则后,才会将请求发往目标资源,只要有一个具体规则校验不通过,则不再将请求发往目标资源。

# 四、类结构设计

加入资源访问校验规则的拦截器规则链的核心类结构设计如图7-2所示。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码