作为中间件开发的一部分,我需要在两种机制之间进行选择来进行异步处理(可能会重放失败案例)我有以下两种技术的想法:
使用 MQ 队列(发生错误时,在拒绝队列中插入一条消息并稍后重播)
使用数据库来存储失败的情况,并在以后转一个批次来重播它们。
技术环境是Java(jdlk 8 + wildfly + REST web services作为中间件入口)
您能否通过比较两种技术的优缺点来指导我,如果有更好的解决方案,将受到欢迎。
在此先感谢您的帮助。
作为中间件开发的一部分,我需要在两种机制之间进行选择来进行异步处理(可能会重放失败案例)我有以下两种技术的想法:
使用 MQ 队列(发生错误时,在拒绝队列中插入一条消息并稍后重播)
使用数据库来存储失败的情况,并在以后转一个批次来重播它们。
技术环境是Java(jdlk 8 + wildfly + REST web services作为中间件入口)
您能否通过比较两种技术的优缺点来指导我,如果有更好的解决方案,将受到欢迎。
在此先感谢您的帮助。
在这种情况下,我的首选是选项 1。我的理由是:
此外,如果 REST 服务暂时繁忙,您始终可以对初始请求实施重试机制,以使其有更好的成功机会,然后在重试尝试失败时将其放入队列以供稍后处理。尝试查看类似Spring retry的内容