问题描述
假使现在系统结构如图:1. Main App 发条TOPIC消息给各个应用系统;2. 收到后开始处理具体的业务,并将结果通过短信回复的方式返给main app;3. main app等待所有信息都返回成功结果,开始提交事务;现在主要的问题:1. 事务在什么时候提交? 是每个app自身处理业务的时候就提交,还是等main app再发消息去提交?2. 假使App1成功,App2,app3都失败了怎么处理?2. 假使app1, app2, app3都成功了,main app发送事务提交,然后有失败怎么处理?是通过JTA的方式去处理吗。。? 这样的速度能忍受么?求指点, 有相关资料最好! 谢谢!
解决方案
感觉这种场景不适合消息系统,因为消息系统是解耦合的,也就是说,需要解耦合的系统一般和主系统是没什么关系的,而你的场景是主系统需要等各个副系统的返回,所以建议直接在主系统调用各个系统的接口进行处理
解决方案二:
消息中心:1、解耦系统;2、削峰如果采用消息中心,不应该用技术的事务来解决业务,应该站在业务的本身去设计合理的业务流程和业务事务
时间: 2024-09-29 15:25:43