1.什么是分布式事务

    就是指不是在单个服务或单个数据库架构下,产生的事务,例如:

    • 跨数据源的分布式事务
    • 跨服务的分布式事务
    • 综合情况

    2.什么是CAP定理

    分布式系统有三个指标,这三个指标不可能同时做到,这个结论就叫做 CAP 定理。

    • Consistency(一致性)
    • Availability(可用性)
    • Partition tolerance (分区容错性)

    Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。

    Availability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。

    Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。

    Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务。

    在P一定会出现的情况下,A和C之间只能实现一个。

    3.什么是BASE理论

    BASE理论是对CAP的一种解决思路,包含三个思想:

    • Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
    • Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
    • Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

    4.常见的分布式事务解决方案

    分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论,有两种解决思路:

    • AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。
    • CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。

    但不管是哪一种模式,都需要在子系统事务之间互相通讯,协调事务状态,也就是需要一个事务协调者(TC)

    这里的子系统事务,称为分支事务;有关联的各个分支事务在一起称为全局事务
    5.SeataAT模式基本流程介绍

    阶段一RM的工作:

    • 注册分支事务
    • 记录undo-log(数据快照)
    • 执行业务sql并提交
    • 报告事务状态

    阶段二提交时RM的工作:

    • 删除undo-log即可

    阶段二回滚时RM的工作:

    • 根据undo-log恢复数据到更新前

    AT和XA模式的区别:

    • XA模式一阶段不提交事务,锁定资源;AT模式一阶段直接提交,不锁定资源。
    • XA模式依赖数据库机制实现回滚;AT模式利用数据快照实现数据回滚。
    • XA模式强一致;AT模式最终一致

    6.项目中分布式事务场景及解决介绍

    app端用户认证通过后审核通过则需要调用远程feign接口来开通自媒体账户以及创建作者信息

    7.阿里云对象存储OSS介绍

    阿里云对象存储服务(Object Storage Service,简称OSS)为您提供基于网络的数据存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。阿里云OSS将数据文件以对象(object)的形式上传到存储空间(bucket)中。

    1. 您可以进行以下操作:
    • 创建一个或者多个存储空间,向每个存储空间中添加一个或多个文件。
    • 通过获取已上传文件的地址进行文件的分享和下载。
    • 通过修改存储空间或文件的属性或元信息来设置相应的访问权限。
    • 在阿里云管理控制台执行基本和高级OSS任务。
    • 使用阿里云开发工具包或直接在应用程序中进行RESTful API调用执行基本和高级OSS任务

    8.素材上传流程

    1、首先根据接口文档编写controller

    2、导入OSS starter工具封装

    3、service实现类编写

    ① 首先校验参数、判断是否有效

    ② 判断是否登录,获取当前线程中获取用户ID

    ③ 判断文件的后缀名,素材格式主要为:jpg,jpeg,png,gif(仅测试图片)

    ④ 上传到OSS 使用UUID生成的文件名称+后缀名(为了使用户上传的文件名不会有冲突) 根据OSS starter封装工具,以流的形式上传图片

    ⑤ 上传成功后,封装数据并保持到素材库中

    ⑥ 返回前端显示(资源的路径)

    9.自动AI实名认证流程

    1、在app端用户发起实名认证,需要上传( 姓名 身份证号 身份证正面照 活体检测图片) 在ap_user_realname中添加一条信息 活体检测图片采集: app端调用摄像头进行人脸采集,保留完整活体照片

    2.、实名认证的状态: 0 待提交 1 待审核 2 失败 9 通过3、在admin端可以查询待审核的实名认证信息,对该信息进行人工审核 后台提供了 实名认证详情查看 审核通过 和 审核失败接口

    4、自动审核流程:

    4.1 通过用友云调用公安部接口 校验信息的真实性

    识别: 基于身份证OCR扫描接口 识别身份证 正面照 和 背面照

    识别出用户 姓名 身份证号 身份有效期(判断是否过期)

    调用 身份证二要素接口 校验身份证和姓名是否真实 (手机三要素 银行卡三要素) 校验 活体检测接口,判断前端采集的用户活体图片是否为真实活人 >= 85 分 对比 人证核验接口,用户活体照片和身份证正面照片 , 如果相似度 >= 85分以上判断为同一个人

    4.2 如果失败将状态改为2 审核结束