开始
本次需要阅读的源码是braum,官方介绍如下:
Braum可以很方便的帮助开发人员过滤、识别恶意请求。
Braum的业务处理流程
收到请求之后先判断是否被限制,然后增加请求次数,如果请求次数超过阈值,则拒绝。业务很简单,源码不多,先说说源码环境设置。
导入代码
可以用git从https://gitee.com/yadong.zhang/braum-spring-boot-starter.git下载源码。
下载之后导入Idea里面。
源码包结构
package annotation
- 主要是EnableBraumConfiguration的注解定义
package cache
- 主要是存储的数据结构和缓存,包括ConcurrentHashMap和Redis两种实现
package context
- 程序上下文的定义
package property
- 属性的定义
package utils
- 工具类,GlobalBraumUtil和RequestUtil,RequestUtil用于获取请求的相关信息
class autoconfiguration
- BraumRedisAutoConfiguration、BraumRedisAutoConfiguration自动配置类
class autoconfiguration
- BraumRedisAutoConfiguration、BraumRedisAutoConfiguration自动配置类
class BraumResponse
- 封装的响应
class BraumProcessor
- 过滤的核心处理,实现是BraumShieldProcessor
其他
更多源码解析关注我学源码网。