一.产品介绍
基于 Apache RocketMQ 构建的分布式消息中间件,应用于分布式系统或组件之间的消息通讯,具备海量消息堆积、低延迟、高吞吐、高可靠、事务强一致性等金融级特性,满足异步解耦、削峰填谷、顺序收发、分布式事务一
致性、日志同步、异地多活等场景需求。
关键词: RocketMQ , 分布式消息中间件,消息通讯, 金融级。
引自: 官网
SOFAStack™(Scalable Open Financial Architecture Stack)是一套用于快速构建金融级云原生架构的中间件,也是在金融场景里锤炼出来的最佳实践。
问题:
1.SOFAStack 消息队列 与SOFAStack 的关系?
1.1产品亮点
产品亮点: 快速集成,多场景支持,便捷运维管控,高性能(低延迟),高可用,高安全。
拓展:
软件开发三高: 高性能,高可用,高扩展。
软件能力三高: 高性能,高可用,高安全。
1.2 与开源RocketMQ对比优势
备注: 表格只列举了和开源差异的部分
二.产品核心功能
功能架构图
思考
: 如何画好产品的功能架构图?
消息类型-事务消息
消息类型-定时/延时消息
消息类型-顺序消息
消息生命周期管理
消息可靠重试
死信队列
消费者状态
多维度消息查询
消息验证
消息回溯
全链路消息轨迹
精细化监控,快速诊断和定位问题
三.高可用架构
单机房架构
同城灾备架构(本地优先)
SOFAMQ 同城灾备架构(本地优先+交叉部署)
基于不同应用的本地优先策略配置优化
SOFAMQ 同城灾备场景推演(双活应用)
SOFAMQ 同城灾备场景推演(双活应用)
SOFAMQ 同城灾备场景推演(单机房应用)
四.蚂蚁应用场景
应用案例 – 蚁盾(应用解耦+削峰填谷)
应用案例 – 蚂蚁森林(定时/延时消息)
应用场景:
异步解耦消息队列的生产消费模型可以解耦上下游业务系统,并支持下游多个消费者对同一消息进行消费和处理。以金融场景为例,支付中心作为支付宝主站最核心的系统,每笔支付数据的产生会引起几百个下游业务系统的关注,包括账户中心、用户中心、权益中心、流计算分析等,整体业务系统庞大而且复杂,在应用强耦合的情况下,任一应用故障都将可能对业务带来影响。通过消息队列进行异步通信和应用解耦,可以很好的提升业务的连续性。
削峰填谷应用分布式改造后,不同应用能承载的性能情况往往不一致,在诸如双11、店庆、秒杀等大型活动时,将会带来较高的流量脉冲,部分系统可能导致系统超负荷甚至崩溃,影响用户体验,消息队列可提供强大的抗积压能力,实现削峰填谷,生产方生产消息后,消费方可以按照系统自身的承受能力进行消息的消费。
顺序收发指的是消息消费者按照消息发送的顺序进行消费,保证 FIFO。金融场景里需要保证顺序的应用场景非常多,例如证券交易过程中的时间优先原则,交易系统中的订单创建、支付、退款等流程等等。
分布式事务一致性应用解耦往往带来多个应用之间的事务一致性的问题。例如支付转账成功后,需要生成账单,更新用户积分等,此时通过消息队列的分布式事务处理功能,既可以实现系统之间的解耦,又可以保证最终的数据一致性。
参考: https://help.aliyun.com/document_detail/146970.htm?spm=a2c4g.11186623.0.0.32225b78O2A7Jw#topic-2027244
附录
核心概念
Topic:消息主题,一级消息类型,生产者向其发送消息。
生产者:也称为消息发布者,负责生产并发送消息至 Topic。
消费者:也称为消息订阅者,负责从 Topic 接收并消费消息。
消息:生产者向 Topic 发送并最终传送给消费者的数据和(可选)属性的组合。
消息属性:生产者可以为消息定义的属性,包含 Message Key 和 Tag。
Group:一类生产者或消费者,这类生产者或消费者通常生产或消费同一类消息,且消息发布或订阅的逻辑一致。
参考:名词解释
扩展
参考: SOFAStack
参考: SOFAStack MQ
参考: 蚂蚁金服SOFAStack-消息队列-v1.1.pdf