作者:禅与计算机程序设计艺术
1.简介
基于消息队列技术构建可靠、异步、分布式、高效的系统架构是一个比较成熟的方案,并已经得到了广泛应用。在实际业务中,消息队列作为一个基础设施组件也逐渐成为越来越重要的组成部分。那么如何利用好消息队列来构建一个可靠、异步、高效的事件驱动架构呢?本文将会详细介绍消息队列与事件驱动架构的相关概念,以及结合实践案例,分享一些建设性意见。
2.基本概念及术语说明
2.1 消息队列(Message Queue) 消息队列是一种生产消费模型,也就是生产者把消息放入队列,然后消费者从队列中取出消息进行处理。消息队列可以解决生产者和消费者之间的耦合关系,生产者不用等待消费者处理完毕就可以继续发送新的数据,同时也可以实现负载均衡。
2.2 异步通信 异步通信指的是无需等待回复就可继续下一步工作的通信方式。采用异步通信时,生产者向队列发送消息后不必等待消费者的响应而继续执行自己的任务,这往往能够提升整体的处理性能。同时由于消费者处理消息的速度不同,可以根据自身的处理能力和消息数量动态调整自己的线程池大小,因此也避免了线程过多导致的资源浪费。
2.3 分布式事务 分布式事务指的是在多个节点间的操作要么都成功,要么都失败。举个例子,在电商网站下单过程中需要扣除用户的余额,如果扣除前的余额不足或扣款失败,则整个订单交易失败。分布式事务就是为了保证在多个数据库或微服务节点之间数据的一致性而设计的一种协议。目前国内许多公司都在探索如何利用消息队列来构建分布式事务,并且兼顾系统可用性和数据一致性。
2.4 事件驱动架构 事件驱动架构是由事件源触发的事件流派生出的架构模式。它通过事件的监听与发布机制来实现模块间的解耦合,在实际开发中,事件驱动架构通常借助于消息队列来实现。</