producer 在提交事务时,发生宕机,commit 的命令没有发送到 broker,这时会发生什么?
ActiveMQ 开启事务发送消息的步骤:
session.getTransactionContext().begin();
producer.send(message);
session.getTransactionContext().commit();
在第三步加断点,然后关闭 producer 进程,模仿宕机。
broker 感知到 producer 的连接关闭后,会触发删除连接操作,回滚该连接下没有提交的事务。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步