蚂蚁金服上链公共服务设计
Posted cxxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蚂蚁金服上链公共服务设计相关的知识,希望对你有一定的参考价值。
背景:
重要事务上蚂蚁金服的链,能够出证。
需求见:http://ax.homedo.com/YF-38996/
蚂蚁金服接口文档:https://tech.antfin.com/docs/2/130331
为避免各个业务模块各自分别对接蚂蚁金服,避免上链代码对现系统的侵入性,充分解耦。
概要设计:
a.主要设计思路:
1. 使用消息队列实现解耦,避免对现有系统性能造成影响。2. 各业务阶段,不需要关心具体存证相关业务信息,只提交信息。
b.存证流程图:
流程说明:
c.接口实现:
字段定义:
字段名称 | 类型 | 是否必填 | 字段说明 |
---|---|---|---|
businessId | string | 业务ID。与证据事务ID绑定的业务ID,能标识此证据链的唯一值;如订单ID | |
businessType | string | 存证事务类型。 见背景中的需求。可对应到创建事务接口中的sub_biz_id | |
accountId | integer | 用户的ID。根据此ID从用户服务接口获取用户相关信息,填入到事务请求接口。 | |
evidenceId | string |
当前存证内容的凭据ID,查询阶段能够根据此ID查找本次接口调用的存证内容;各业务模块自定义。 如:订单的各阶段证据,可以使用“订单ID+状态码” |
|
notaryContent | string | 存证内容。Json格式字符串 | |
contentVersion | string | 存证内容版本号。自己定义,以便响应后期内容的格式变动 | |
clientData.version |
string | 接口版本号。公共服务定义 v1.0.0 |
实现方式:接口最好是封装成SDK,SDK内进行基本信息的校验和消息队列的对接
d. 数据库设计:
a. 事务ID和业务ID的绑定关系,并保存有用户ID,存证事务类型,最好把返回的重要信息都保存
b. 存证凭据(tx_hash)和 阶段ID的对应关系,并保存存证成功后返回的重要信息。
详细:
以上是关于蚂蚁金服上链公共服务设计的主要内容,如果未能解决你的问题,请参考以下文章
最新蚂蚁金服面试题:Docker+秒杀设计+RocketMQ+亿级数据设计