有赞单元测试实践

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

Read More

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

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

Read More

营销系统在预付卡场景下的演进

一、引言 营销,就是吸引消费者关注进而使用商家提供的产品或服务的种种手段。某种意义上来说,你能看到的广告、分享、打折、赠送,这些都算是一种营销。 预付卡的生态体系里恰恰需要这种营销的基因,来帮助商家快速回笼资金,于是两者一拍即合,营销系统在预付卡生态下生根发芽。 二、会员储值的充赠 有赞预付卡包装出了会员储值这样一款产品,用户在商家店铺里完成特定金额的充值后,会得到商家赠送的权益,比如积分、会员卡、优惠券等。 这就是最原始的需求,分析下来,为了完成这个充赠的目标,…

Read More

Mysql锁:灵魂七拷问

一、缘起 假设你想给别人说明,Mysql 里面是有锁的,你会怎么做? 大多数人,都会开两个窗口,分别起两个事务,然后 update 同一条记录,在发起第二次 update 请求时,block,这样就说明这行记录被锁住了: 二、禁锢 问题来了,貌似只有显式的开启一个事务,才会有锁,如果直接执行一条 update 语句,…

Read More

CAP一致性协议及应用解析

一、一致性 1.1 CAP 理论 C 一致性:分布式环境中,一致性是指多个副本之间,在同一时刻能否有同样的值 A 可用性:系统提供的服务必须一直处于可用的状态。即使集群中一部分节点故障。 P 分区容错性:系统在遇到节点故障,或者网络分区时,任然能对外提供一致性和可用性的服务。以实际效果而言,分区相当于通信的时限要求。系统如果不能在一定实现内达成数据一致性,也就意味着发生了分区的情况。必须就当前操作在…

Read More