分布式系统-异步

异步,是分布式系统重要的设计原则之一。

为什么异步很重要呢?

试想一个场景,在电商业务中,用户下单并支付成功后,需要给店家推送一个消息,告诉店家来订单了,抓紧发货。

这个推送功能,如果和支付回调接口做成同步,会有什么问题呢?

要知道,系统总是不可能绝对稳定的。如果推送接口异常或者超时了,主流程就会受到影响。特别是超时,可能导致系统链接打满,从而引发系统假死。

说到这,您可能知道问题关键所在了吧?

一个非核心功能的异常,可能影响主流程,甚至引发系统崩溃。

所谓异步,便是将非核心功能做成异步,避免影响主流程,提高系统可用性。

异步的技术有很多,介绍其中比较典型的几个:

多线程:

可以通过线程池的技术来实现,将非核心任务,放入线程池任务队列中,由独立的线程来处理。

使用这个技术,要特别注意配置队列的大小,避免oom(内存泄露)导致系统假死。

消息中间件:

通过消息中间件,可以将非核心业务解耦。但是要特别注意,发送消息到消息中间件的动作,最好也用多线程来实现。

定时:

对于时效性要求不高的业务,可以通过定时跑批来实现。这个方案,要特别注意,每次取待处理数据,一定要控制住数据量,避免一次性加载过多数据。

posted @ 2023-12-07 22:00  天NULL  阅读(50)  评论(0)    收藏  举报