异步处理

118 阅读2分钟

异步处理的整体业务事务问题,也就是说,异步处理在处理任务的时候,并不知道能否处理成功,于是就会一步一步地处理,如果到最后一步不能成功,那么你就需要回滚。这个时候,需要走我们在弹力设计中说的补偿事务的流程。

并不是所有的业务都可以用异步的方式,比如一些需要强一致性的业务,使用异步的方式可能就不适合,这里需要我们小心地分析业务。我相信绝大多数的业务场景都用不到强一致性,包括银行业务。另外,在需要性能的时候,需要牺牲强一致性,变为最终一致性。

在运维时,我们要监控任务队列里的任务积压情况。如果有任务积压了,要能做到快速地扩容。如果不能扩容,而且任务积压太多,可能会导致整个系统挂掉,那么就要开始对前端流量进行限流。

异步处理系统的本质是把被动的任务处理变成主动的任务处理,其本质是在对任务进行调度和统筹管理。

异步通讯,在弹力设计中的作用是提高系统的稳定性和容错能力,还可以在异步通讯的基础上统筹任务来提高系统的吞吐量。 异步通讯的设计,包括推拉结合的模型。异步处理配合事件溯源一起使用,将大大简化 bug 修复后的数据恢复,也能用于实现存储的事务一致性。

此文章为4月Day04学习笔记,内容来源于极客时间《左耳听风》,强烈推荐该课程!