这篇文章https://blog.csdn.net/chunlon...:给消息中间件发送消息失败,发送方并不知道是消息中间件真的没有收到消息呢?还是消息已经收到了,只是返回response的时候失败了?如果是已经收到消息了,而发送端认为没有收到,执行update db的回滚操作。则会导致A账号的钱没有扣,B账号的钱却加了。意思是消息中间件会出现收到消息,给消费者消费了,但是生产者却收到发送失败我好奇的是,诸如kafka,rabbitMQ,ActiveMQ会出现这种状况吗?
1 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
理论上不会。
你可以研究一下MQ的实现原理。
另外,你也可以自己实现MQ,或者自己实现部分逻辑。比如添加一个握手的过程,取得发送成功回执。或者添加一个确认的过程,发送成功或者失败之后,都去MQ查一下消息存在不。
添加回答
举报
0/150
提交
取消