支持大并发量的网关防刷架构方案
2021-12-30 18:19:17 1 举报
支持海量并发的网关防刷架构
作者其他创作
大纲/内容
批量存储
N
实现原理:对网关的Ribbon负载均衡做二次开发即可
登录获取凭证
AOP
定时任务
日志缓存队列
日志架构
消息中心
具体接口业务
后置过滤器
黑名单过滤:自动
token
业务处理接口
Y
登录服务
初始化灰度发版条件
手机号码短信验证码
提交当前ip和接口
业务操作1,读写分离根据ThreadLocal Read/Write
rabbitMQ
自定义MultiDataSourceTransaction重写MultiDataSourceTransactionFactory extends SpringManagedTransactionFactory.newTransaction()
处理拦截逻辑
redis
mysql-log4j 客户行为分析数据
发版流量分流条件
业务操作3,读写分离根据ThreadLocal Read/Write
业务处理日志
微服务3
读写分离:基于接口
微服务列表
当前线程
负载均衡
返回token
是
elastic search
拦截器
消息任务处理中心
请求信息缓冲队列
封装拦截信息
网关防刷
读写分离: 1. @Transactional2. 中间件read/write url 3. 好房:基于接口的ThreadLocal
简要行为分析数据
否
微服务集群
异步批量处理日志
批量分析处理
灰度发版分流示意图
识别用户凭证
客户行为分析
微服务n...
1.上一分钟的请求分析2.当前小时的请求分析3.上一小时的请求分析
微服务1
黑名单过滤:指定
业务操作2,读写分离根据ThreadLocal Read/Write
前置过滤器
日志
是否拦截
选择正常的微服务
前端 iOS Android H5
网关,灰度发版分流的流程
白名单过滤
mysql-log4j
重载MybatisConfiguration.sqlSessionFactorys()SqlSessionFactoryBean.setTransactionFactory(new MultiDataSourceTransactionFactory());
选择正在发版的新服务
定时任务:分析数据刷新、配置刷新
初始化 ThreadLocal Read/Write Config每个接口配置Read/Write信息
MQ消费
微服务2
拦截日志缓冲队列
elastic search业务处理日志保留近三个月
收藏
收藏
0 条评论
下一页