1.消息队列
在分布式系统架构中,消息队列的核心职责是为不同的应用系统提供异步通信服务,通常涉及以下三个重要角色:
• 消息发布者,发送消息的应用系统,负责创建消息对象并通过网络发布到消息Broker,发布的过程一般是同步的。
• 消息Broker,异步消息的“代理人”,负责接收并持久化消息,保证将消息投递到指定的消息订阅者应用系统。
• 消息订阅者,订阅消息的应用系统,负责消费消息Broker投递过来的消息。
异步消息队列
- “账单服务” 处理 “账单查询Case” 的耗时由 60 ms 缩减至 13 ms, 提高了服务的吞吐量。
- “账单服务” 和 “风险控制服务”、“短信通知服务” 完全解耦,如果在业务演进过程中,增加了新的下游服务,“账单服务” 完全无需变更。
- 当 “风险控制服务” 和 “短信通知服务” 不可用时,不会导致 “账单服务” 不可用,
通过以上 “账单查询Case” 的设计方案,可以阐明引入消息队列给分布式应用架构带来的三大核心优势。
如果需求是 “变更Case”,要实现的基本业务逻辑如下:
- 写入数据库,变更指定账户的账单记录。
- 记录用户检索行为,为风险控制提供数据积累。
- 发送短信到用户手机,通知用户其账户变更金额。
与 “查询Case” 的区别在于数据库操作是写入,而不再是检索。二者的主要区别是 “数据库检索” 不涉及数据库事务,而 “数据库写入” 一定会涉及到数据库事务,按照之前的引入消息队列设计思路,“变