2019/47周总结
库存与超卖的小结
0. 背景
最近业务同学在双11做优惠券活动相关的时候,出现了超领的情况,本来定的是一百张,最后超领到了三百多张。最后通过修改数据库的查库存语句解决了问题,峰值1W+ QPS 也没有出现问题。
本来想自己整理一下关于库存和超卖的博文,但是在收集资料的时候,发现京东已经有一篇质量非常高的文章,索性直接转发过来了。
原文地址:https://www.infoq.cn/article/jingdongdaojia-inventory-system/
2019/45周总结
2019/44周总结
2019/43周总结
压测性能总结
0. 背景
临近双11,公司对所有的接口都使用阿里云的全链路压测工具做压测,比如首页的 TPS 是3000,支付的 TPS 是 60,根据不同的接口做不同的策略。其中数值是根据平时的5倍计算得出的。
这篇博文就是使用阿里云的 arms 监控(APM的一种,类似 skywalking,可以查看请求的每个链路)以及 PTS(做压测的一种工具)对两次压测的优化总结。
待拆解项目机器集群A:48台,配置为4核8G
本项目机器集群B:6台,配置为4核8G
由于压测时正在在拆解服务中,因此大部分接口在A集群中。
A 集群20%的接口通过 RPC 请求到 B,80%的接口通过发送消息跟 B 交互。
数据库配置:1写5读,配置较高,只在主库操作。在压测过程中主库 CPU 基本属于较为稳定。
ONS:发送、接收消息总 TPS 为 5000,在压测过程中基本还未达到该阈值。总 TPS 稳定在 40(即发、接消息各20)。
Redis:4G两节点,不是瓶颈。
第三方请求接口主要有:支付的请求下单、通知回调、银行卡四要素验证等。
2019/42周总结
DUBBO SPI 解析
0. 背景
最近因为项目需要,需要基于 Dubbo 增加一个 filter,拦截所有的 RPC 请求,打印出请求的相关信息。
我自定义的 Filter 作为提供者拦截器一共有三步:
- 写一个自定义类,实现自 Filter 接口
- 在 META-INF/dubbo 下增加一个 org.apache.dubbo.rpc.Filter 的文件名,内容为自定义 Filter 的全路径
- 自定义 Filter 类上增加一个 @Activate(group = Constants.PROVIDER, order = -999) 注解
因此有个疑问,它是如何生效的呢?我在哪个地方让它生效的呢?因此在参考了一些博客和项目后,有了我这篇总结,分析了 Dubbo SPI 的原理以及我还未使用到的 AOP、IOC 特性是如何实现的。
reference: