项目训练营-智能Bi项目优化 | 限流、线程池实战、业务改造、消息队列实战、业务改造

项目训练营-智能Bi项目优化 | 限流、线程池实战、业务改造、消息队列实战、业务改造

大纲

  • 文件长度、后缀校验
  • 分布式限流
  • 分表具体实现
  • 线程池实战
  • 异步化业务改进
  • 消息队列实战
  • 结合消息队列用direct交换机改造业务

第一部分:校验文件长度和后缀

在这里插入图片描述

  • 测试结果
    在这里插入图片描述

  • 尝试传输一本书
    在这里插入图片描述
    系统显示超过10MB直接系统异常

  • 选择一幅2.08MB的图片来测试,结果如下
    在这里插入图片描述

第二部分:限流

为什么要限流?

在开放接口类的平台中,为了保护服务器和将成本控制在可以接受的范围内,选择限流即限制用户调用次数

具体分为分布式限流和本地限流。

限流有四种常见的方法:
1、固定速率限流,比如一小时可以调用2次

  • 优点:实现简单;
  • 缺点:如果第一小时末尾来了2次,第二小时前20分钟来了2次,服务器仍然有可能会崩溃

2、滑动窗口限流,比如一开始是0~1h限流2次,1min后,变成1min到1h1min限流2次

  • 优点:限流性能更好;
  • 缺点:实现较为复杂

3、漏桶限流,可以将请求全放入一个桶中,在桶的下边,以固定速率滴下水滴

  • 优点:负载均衡,服务器可以慢慢处理
  • 缺点:处理速度较慢

4、令牌桶限流,一小时生产10个令牌,拿到令牌的人的请求可以得到处理

  • 优点:处理较为迅速
  • 需要解决的问题:并发和异步化改造

具体实现

1、在config文件夹中新建一个RedissonConfig.java文件
编写如下:
在这里插入图片描述
ConfigurationProperties(prefix = “spring.redis”)
是将该类中一些变量映射到applications.yml中取值

2、具体限流方式为在manager文件夹中新建一个RedisLimiterManager.java文件,编写代码如下:

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值