假设一些 spring bean 有事务方法,它做了两件事:
- 异步发送 JMS 消息
- 更新数据库
问题是当消息被消费时,数据库事务有时还没有提交,处理程序在数据库期望值中找不到。
明显的解决方案 - 是发送事务,但我使用 ActiveMQ 上可用的异步发送来增加吞吐量。如果我进行事务性发送,我会丧失异步性,并且还会冒着获得 OuOfMemory 的风险。
你将如何解决这个问题?
假设一些 spring bean 有事务方法,它做了两件事:
问题是当消息被消费时,数据库事务有时还没有提交,处理程序在数据库期望值中找不到。
明显的解决方案 - 是发送事务,但我使用 ActiveMQ 上可用的异步发送来增加吞吐量。如果我进行事务性发送,我会丧失异步性,并且还会冒着获得 OuOfMemory 的风险。
你将如何解决这个问题?