业务场景:有三个连续的请求,必须保证其顺序性

第一种方案:通过redis记录

分布式系统中的接口调用如何保证顺序性

点评:这种方法太重,阻塞的接口会压榨服务器的并发数/吞吐量,只有当请求1失败后其他两个才能释放。

 

第二种方案:前端串行请求

 

在不追求高服务体验的时候可以限制下一个请求,当请求1没有处理完成前,前端不会发送第二个请求,并且后端系统在接收到请求2时直接返回错误信息,也可以在前端建立一个队列,按顺序发送请求至后端,后端系统只需要判断顺序是否正常即可。

 

第三种方案:前置服务

分布式系统中的接口调用如何保证顺序性

 

第四种方案:MQ

分布式系统中的接口调用如何保证顺序性

当集群B消费到请求3时,若请求1还未被消费那么集群B直接将消息抛错,扔还给MQ稍后重试,可以通过数据库或redis判断目前消息的执行顺序。

 

 

 

 

 

 

相关文章:

  • 2021-08-05
  • 2022-01-30
  • 2021-10-10
  • 2021-10-28
  • 2021-06-14
  • 2021-12-29
  • 2022-01-01
猜你喜欢
  • 2021-10-07
  • 2021-05-22
  • 2021-07-13
  • 2021-07-30
  • 2022-01-29
  • 2021-06-05
相关资源
相似解决方案