Subscriber 回滚本地事务
该场景不存在任何问题,因为 Publisher 会通过 事件重试 再次发布 预发布 状态的事件 。
Publisher 端处理顺利
Subscriber 消费失败,回滚本地事务,此时 SubscribeEvent 未存储到本地仓库
该场景存在的问题:
Publisher 发送成功,并且本地 PublishEvent 事件为已发布,那么意味着从Publisher端是无法知道Subscriber消费失败需要重新消费
解决方案:
通过检测 PublishEvent & SubscribeEvent 获得需要 事件重试 的 PublishEvent
将 PublishEvent 重新发布 到 Subscriber
5. 通过Nuget安装组件支持以上编程模型 Install-Package SmartEventBus.RabbitMQImpl Install-Package SmartEventBus.Repository 6. ORM:SmartSql 广而告之SmartSql = Dapper + MyBatis + Cache(Memory | Redis) + ZooKeeper + R/W Splitting + ......