目前有个需求,将发送到 A 服务的请求复制一份发送到 B 服务,如果 B 服务响应不成功,就把这个请求保存下来以后重发。 有什么好的方法保存这个请求以供重发吗
A,B 服务用的 spring boot,Java 码农
多谢各位大佬
目前有个需求,将发送到 A 服务的请求复制一份发送到 B 服务,如果 B 服务响应不成功,就把这个请求保存下来以后重发。 有什么好的方法保存这个请求以供重发吗
A,B 服务用的 spring boot,Java 码农
多谢各位大佬
|
1
python 里面可以用装饰器写 retry
Java 应该也有类似的吧 |
|
azh7138mMay 5, 2020
2
|
|
opengpsMay 5, 2020 via Android
3
搜索下 HAR 相关用法,我没具体做过,盲猜这个路径可以尝试
|
|
4
@infun spring 确实有 retry 框架,我研究研究 多谢大佬!
|
|
5
@azh7138m 需要手动恢复 B 服务才能重试,可能需要比较久。。这个我也没用过,要研究研究 多谢大佬
|
|
GlobalNPCMay 5, 2020 via Android
6
@kaleidoscope 。。。那么久就应该另起定时任务来做吧,失败了放失败队列,定时去捞失败的重试
|
|
7
@infun 😂就是不太清楚怎么样把这些请求以一种结构存起来
|
|
nvkouMay 6, 2020 via Android
8
问题是谁重发?
客户可能已经离开了,你这个请求从谁那里重发? 如果是保持链接的重试,增加增加 ttfb 时间,那就从反向代理服务器入手。 如果是客户不关注的指令,你可以上队列。 保存请求更像是日志的事情,你要模拟请求当然可以保存下来,http 请求很好保存,但发起人就绝对不是原来的客户了。 请求进反向代理,主服务器返回 400 或 500,请求转次服务器,次服务器反 200 。客户收到 200 |
|
lavvrenceMay 6, 2020
9
放到消息队列里。可以存储一个 HttpRequest 这种对象。
|