关于推和拉的处理

消息处理

一、A 推 B

A服务将数据推送给B服务,这个时候B数据会接收到数据并且保存到数据库,这个时候B服务就需要做一个幂等操作,对应A而言,如果B没有抛出异常,则会将状态修改。

  1. 但是如果A请求超时了,但是B服务却执行了,会导致状态没有修改成功,这样会导致不一致了。
  2. 如果B服务执行成功了,返回给A服务,但是返回A服务后,A服务还没来得及修改状态,就宕机了,导致数据不一致性。

对于B服务而言,A服务可能会再次推送相同的数据,因此需要在B服务添加幂等操作。避免同数据过来,导致业务执行错误。

二、A 拉 B

A 服务通过请求会拉取 B 服务,那么B服务应该不能有状态保持,比如A服务拉取项目数据,对于B服务而已仅仅是提供一个Get请求,不应该去更新数据库表。如果更新了数据库表,那么B更新成功后,然后将数据返回给A服务,A服务这个时候挂了,或者回滚了,则会导致A服务不会回滚。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值