使用mq的好处和弊病?
- 解耦
- 异步化
- 削峰
使用mq的业务场景梳理
解耦场景:
- 基础平台服务场景
- 客户变更个人信息时, user域广播消息通知其他业务线同步修改信息
- 客户销户前, user域销需要检查各个业务线客户的资产是否已清零? 是否还有在途交易?
- 支付域, 在对业务线通知支付结果时, 也是广播消息, 各业务线都对topic订阅, 只关注自己业务线的订单.
- 交易域, 在进行业务线预下单时, 需要调用各业务线对进行前置校验.
异步场景:
- 交易下单流程特别长( 涉及到交易落地, 支付准备, 下单前置业务校验, 业务预下单, 三方支付上账, 业务支付通知等一系列流程)
- 状态机特别多, 在一个大事务里串行处理不太可行.
- 涉及到特别多的系统交互
- 通过mq异步驱动每个状态机的流转
并发场景:
- 系统的业务接口并发量大, 性能要求高
- 但是涉及到外部接口调用(比如基金公司实时接口, 三方支付实时接口, 银行接口等)
- 需要保证实时接口性能,但是又不可避免调用外部产生网络延时(100ms+)
- 此时采用的是实时接口先DB落单(同城同机房一般95line <1ms, 同城异地机房一般95line <= 3ms)
- 再通过mq异步驱动后续流程
- 最终通过mq通知调用方交易结果