一、实现逻辑
- 常见名词归类
在不同的业务场景,返回处理结果。
第三方会异步的通过回调事件,将回调结果返回给业务系统。
- 接口设计
- 注:学习地址:
https://blog.csdn.net/jiahao1186/article/details/81988866
- 第三方回调接口设计:
- 业务调用时,将会以 POST 的形式对回调地址进行请求。
- HTTP 请求方式: POST JSON方式。
- 响应码 200 ok表示成功,其余都为失败。
- 回调重试策略:若请求回调地址出现 HTTP 失败(HTTP 状态码不为 2XX),后端服务器会在 100ms 后默认发起1次重试,重试仍然失败后,将不再继续重试。(重试策略支持自定义配置)。
- 业务系统方接口设计:
·异步
·MQ消息队列
·直联的回调
二、自动化辅助测试
- 目的
替换业务方需要在不同的业务场景添加事件,类似于中间件,支持底层纯功能测试。
- 已支持:Java + http短链接
- 还可用:python + http短链接
- 技术实现
- 标准的SpringMVC三层框架:前者Controller只负责搜集参数、调用服务、转发或重定向结果集,其他业务逻辑都放在Service层
- MainCallback8081
路径:/callback/src/main/java/com/example/callback
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
- CallbackController
路径:/callback/src/main/java/com/example/callback/controller
1. @Resource全局装饰器
2. @PostMapping
. 类似于后端实现对应接口/stream/info逻辑,根据messageType入参区分信令类型
3. @GetMapping
. 提供接口/stream/close/info/get逻辑,支持查看回调打印的日志
- CallbackService
路径:/callback/src/main/java/com/example/callback/service
1. class BaseVO
2. class BaseStreamVO
- 启动tomcat服务器
- 问题记录
- http链接外网机器设置
三、实例
- 回调服务模块
- 各个参数支持配置:支持配置重试次数, 初始重试间隔, 超时时间, 重试截止时间等
- 调异常报警:如果重试次数用尽或到达截止时间的还没有成功的, 就报警
- 文件上传
- 各参数支持配置:文件大小、类型格式等
- 失败重传
- 上行带宽限流设置
- 报警相关:可配置失败多少次后, 暂时放弃重传, 然后放入redis中, 不定时的重试, 到达一定的重试次数的报警
- 大数据存储
- 音视频业务数据回调
- Center + 回调模块
·流创建
·流关闭
·用户加入房间
·用户离开房间
·录制、截图结束回调 - APaaS方需要知道自己接的PaSS方质量如何
- 重试策略
- 若业务方有维护直播列表或者维护直播间内在麦人员的需求。
四、测试总结
问题记录:
- 核心字段为空:msg、reason、
- 异常回调状态不对
- 回调的超时逻辑异常
实现顺序:
测试case: