上一节把可靠消息最终一致性的正常逻辑代码顺序执行了一次,并且对于同一个事务消息,在正常情况下它要被发送至少两次。
这是因为在发送消息之前,TransactionMessageService就已经把消息保存到了数据库中。而在首次消费完消息后,TransactionMessageListener并没有从数据库中删掉,数据库中保存的消息,将被轮询服务AppListenerScheduleExecutor再次发送。

图三十三:消息轮询服务
而轮询服务AppListenerScheduleExecutor是被