账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于MQ异步调用,调用失败的处理方式
    59
    0
    @Transactional
    void a(){
      b();//插入数据a,id=101
      c(101);
    }
    
    /*
    * 异步执行
    */
    @Async
    void c(int id){
      // 查询
      Obj data = query(id);
      // 调用mq 
     push(data)
    }

    在一个事务里面,插入数据,然后在另一个线程里查询并推送数据。

    这里query的时候,可能由于事务没有提交,查询不到数据的。

    问题

    mq异步调用失败,如何保证数据一致性?

    已知方案:调用失败写入数据库,然后定时扫表,做补偿,不过感觉这种效率不高。

    还有其他更好的方案吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 林景明 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部