前言
在生产环境开发中,一个rest接口的逻辑大体基本如下:
入参校验—》业务逻辑—》入库
而随着业务逻辑的不断迭代、满足日益庞杂的业务需求的过程中,系统的RT也越来越长,成为一个不可避免的问题。
架构演进
其实最初的架构演进是单体应用、也就是从前端到数据库中间只会加一个应用,在这个时候其实一个系统的rt,它是多长就是多长,优化空间比较有限。
而随着后期微服务的加入,由于业务系统之间越来越多的相互调用、rt逐步增大。尤其涉及到需要入库的系统,这样的系统本身rt就长。rt长,而且不不够稳定。比如上图中的业务系统a,调用业务系统b。那么业务系统b是直接与数据库交互的,业务系统a在调用业务系统b的时候,如果业务系统b出现异常,那么此时会超时,rt等于设置的超时时间;即使不超时,由于业务系统b与数据库的交互,再加上业务逻辑本身的复杂,在类似于业务系统b这样的系统更多的时候,业务系统a的rt可能会增加到3秒甚至四秒。这对用户体验是非常差的。
异步化指令
也正是由于微服务之间相互调用,所以我们在这里提供一种思路。可以使用异步化指令来解耦系统与系统之间的调用,其实这就是一种异步