![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
业务场景&解决方案
文章平均质量分 63
爱码猿
不登高山,不知天之高也;不临深溪,不知地之厚也。
展开
-
MySQL深度分页优化
我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。这个SQL的执行时间如下:执行完需要秒,深分页为什么会呢?如果换成limit 0,10,只需要秒哦limit 0,10。原创 2024-01-18 08:46:13 · 1295 阅读 · 0 评论 -
MyBatis Plus整合Redis实现分布式二级缓存
MyBatis Plus整合 Redis 实现分布式二级缓存原创 2023-11-12 21:46:45 · 1176 阅读 · 0 评论 -
Redisson实现延迟队列
Redisson实现的延迟队列是基于Redis的zset命令实现的,通过将数据存储到zset中,并设置过期时间作为score,通过定时任务轮询zset来实现延迟队列的功能。延迟队列是指在队列中存储带有过期时间的数据,在过期时间到达时自动从队列中移除。原创 2023-11-07 08:38:24 · 613 阅读 · 0 评论 -
SpringBoot 实现动态数据源
SpringBoot 实现动态数据源功能: 前端请求接口时携带用户信息,后端拦截器获取用户信息后切换数据源查询数据。使用场景:多租户,sass,pass等项目。实现原理:主要通过SpringBoot提供的AbstractRoutingDataSource类,该类允许我们存入一个map,然后在通过数据源获取数据前允许我们指定一个key,然后自动的根据key从map内取对应的数据源。1 创建 DataSourceHolder类管理数据源的创建和存储@Component@NoArgsConstruct原创 2022-05-12 23:02:09 · 6590 阅读 · 6 评论 -
SpringBoot 整合 ELK 实现日志采集和管理
ELK:Elasticsearch:用于存储收集到的日志信息Logstash: 用于日志采集并上传到ElasticsearchKibana: Web端可视化页面下载Elasticsearch7.16.2Kibana7.16.2Logstash配置并启动elasticsearchelasticsearch无需过多配置,直接进入bin目录启动即可配置并启动Logstash创建 spring-boot-logstash.yaml 配置文件input { tcp { #原创 2021-12-28 23:24:40 · 2356 阅读 · 0 评论 -
Maven 打包为rpm包
maven使用rpm-maven-plugin构建RPM包原创 2021-12-02 16:54:18 · 2053 阅读 · 0 评论 -
MQ消息延迟推送
场景:推送门店昨日销售业绩给各个门店店长,数据提供方来自大数据,正常情况下是9点出数据,但是处理时可能会延迟有可能9点2分,9点5分甚至是9点30分还未出数据,后端程序每天9点定时任务推送数据,如果推送时从大数据接口获取不到数据,那么整天的数据就需要人为干涉手动推送,十分的不人性化。解决方案:通过MQ的死信队列+消息过期时间,实现无数据时5分钟后重新推送,超过N次后将为推送的门店入库,发送消息(邮件)告知管理员。流程图代码通过SpringBoot+RabbitMQ实现1 申明交换机,消息队列原创 2021-09-10 14:20:12 · 1380 阅读 · 0 评论