异步操作
使用消息队列将调用异步化,改善网站扩展性和系统的性能。
在使用消息队列后,用户请求的数据发送给消息队列后立即返回,再由消息队列的消费者进出(通常情况下,该进程通常独立部署再专门的服务器集群上)从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度远快于数据库(消息队列服务器也比数据库具有更好的伸缩性),因此用户的响应延迟可以得到有效改善。
消息队列具有很好的削峰作用,即通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。由于数据写入消息队列后立即返回给用户,数据在后续的业务校验、写入数据库操作可能失败,因此在使用消息队列进行业务异步处理后,需要适当修改业务流程进行配合。