一次大量删除导致MySQL慢查的分析

背景 监控上收到了大量慢查的告警,业务也反馈查询很慢,随即打开电脑确认慢查的原因。 现象描述 通过平台的慢查分析之后,我们发现慢查有以下特征: 慢查的表名都是sbtest1,没有其他的表 大部分的慢查都是查表最新的数据,例如select * from sbtest1 limit 1; rows examined 为1,没有扫描大量的数据 问题分析 通对慢查的大致分析,SQL本身没有发现问题。那么是不是主机或者网络等有问题呢? 经过对网络和主机磁盘的IO等的分析,负载均正常,…

Read More

有赞单元测试实践

一、概述 单元测试是指对软件中的最小可测试单元进行检查和验证。单元在质量保证中是非常重要的环节,根据测试金字塔原理,越往上层的测试,所需的测试投入比例越大,效果也越差,而单元测试的成本要小的多,也更容易发现问题。 1.1 有赞单元测试1.0架构 以有赞中台某应用为例,应用部署是微服务架构,对外提供dubbo服务,当前的单元测试,采用了分层测试框架,根据代码的分层,分为Service 层测试,Biz层测试,外部服务访问层测试,DAO…

Read More

记一次故障引发的线程池使用的思考

悬案 某日某晚8时许,一阵急促的报警电话响彻有赞分销员技术团队的工位,小虎同学,小峰同学纷纷打开监控平台一探究竟。分销员系统某核心应用,接口响应全部超时,dubbo线程池被全部占满,并堆积了大量待处理任务,整个应用无法响应任何外部请求,处于“夯死”的状态。 正当虎峰两位同学焦急的以各种姿势查看应用的各项指标时,5分钟过去了,应用居然自己自动恢复了。看似虚惊一场,但果真如此吗? 勘查线索 QPS,“是不是又有商家没有备案就搞活动了啊”,小虎同学如此说道。的确,对于应用突然夯死,大家可能第一时间想到的就是流量突增。…

Read More

有赞订单同步的探索与实践

一 引子 有赞是提供商家SAAS服务,随着越来越多的商家使用有赞,越来越多的需求铺张而来,搜索或详情的需求会越来越多,针对需求及场景,之前提到过的订单管理架构演变及AKF架构等在这两篇文章里已经有所体现,而这些数据的查询来自于不同的Nosql,怎么同步这些非实时存储系统将是一个很有趣的事情 同步由来 先不说同步是什么,一般情况下,公司达到一定规模,有类似全文检索的需求或者高频key:value的时候,大家会推荐ES+HBase的架构体系去完成搜索和详情的需求,而现实中,绝大多数情况下生产环境不会将数据直接写入到ES或者Hbase,大家都会优先写入数据库,不进行双写的操作是因为增加链路影响业务。当然Hbase可能还好一点,ES本身就是非实时查询系统(为什么是非实时,…

Read More

Flink 滑动窗口优化

一. 前言 Flink 的窗口功能非常强大,因为要支持各种各样的窗口,像滑动窗口和滚动窗口这样的对齐窗口,像会话窗口这样的非对齐窗口,复杂度也会比较高。其中在超长滑动窗口的性能上也不尽如人意。这篇文章首先会阐述为什么在超长滑动窗口下 Flink 的性能会降级的很严重,以及在有赞我们是如何解决这个问题的。此外,在优化中并没有去兼顾 Evictor 的逻辑,因为在业务中并没有相应的需求。 二. Flink 滑动窗口的实现 Flink Window 算子的整体概念如下图所示,可以看到有几个重要的部分,…

Read More