安装OpenResty
Ubuntu安装
Docker安装
限流逻辑
原理说明
概念说明:
- 一个session通常包含1个inform请求 + n个后续子请求;
- 所有的请求要么消息体中包含
设备SN
(inform类请求), 要么Cookie中包括session id
(session中的后续子请求);
逻辑说明:
- 通过
IP + 设备SN
来进行限流;
- 当响应包含
Set-Cookie
时, 读取其中的session id
, 然后缓存session id
和设备SN
的映射关系, 映射关系设置过期时间120s
- 当请求来时, 能够从请求Cookie中获取到
session id
, 并且其存在于缓存的映射关系之中, 则放行 -- (非inform请求不限流, 需要保证完整执行, 否则可能导致acs的session异常终止)
- 当无法获取到
session id
时, 会尝试从消息体中去获取设备SN
- 如果获取不到,则统一设置
设备SN
为unknown
, 享受IP+unknown
的限流策略
- 当能获取到
设备SN
的情况, 享受IP+设备SN
的限流策略
- 当响应码为204时, 执行
session id
和设备SN
映射关系的清理工作