转转推送系统的易测性设计
摘要
转转推送系统(后面简称系统)在早期设计中主要考虑了三个核心指标:
- 吞吐量:指系统在单位时间内能够发送多少消息的能力。
- 扩展性:指系统在快速支持更多APP主体、发送策略、发送通道、通道策略等能力上的难易程度。
- 性能:指系统API的接口耗时。
为了同时满足三个核心指标,我们在系统中大量采用了异步、并发、批量等设计。这些设计虽然很好满足了系统设计指标,但是同时也给系统带来了较高的复杂度,再加之一些环境因素(如测试环境的不稳定),导致业务方(指系统使用方)在接入测试中经常需要系统人员协助定位问题,这种状况既降低了业务方的开发效率又增加了系统的维护成本。
为了解决业务方的接入测试问题,在之后的系统演进中我们又增加了第四个指标:易测性,希望通过这个指标来提高系统的可测试性和降低系统测试成本。本文将重点讲述我们在系统易测性指标上的一些设计经验供大家参考。
欢迎在评论区写下你对这篇文章的看法。