多个服务如何远程交互保证流量正常
How can multiple services interact remotely to ensure normal flow
各位。我有个问题。你能帮助我吗?谢谢
背景:
服务器A通过RESTTemplate与服务器B通信,服务器B通过socket与客户端C通信
整个过程基本上是这样的:C发起请求,去A,returns结果给C:
C-->B-->A-->B-->C
还有以下业务
A-->B-->C-->B-->A
问题:
ABC是远程调用,中间总有一些意外(比如C发出请求,C挂了或者网络超时,C收不到消息,即C-->B-- >A-->B-->C),如何保证意外情况的发生,又能让业务闭环
有成熟的方案吗?
我的尝试:
我试过在B中保存状态,然后让C再次请求,根据情况决定继续哪一步,但是感觉这样做太麻烦了,不知道行不行还有其他计划
您可以将微服务与 Spring 结合使用以获得松散耦合的流程。
它可以执行大型复杂应用程序的持续交付。
您的用例是跨多个服务的业务交易中的常见问题,并且由于分布式性质,可能存在许多不受服务控制的故障场景,例如网络问题、延迟、意外故障。有几种技术,最常用的是 Compensating transaction by using Eventual consistency or Saga 模式
各位。我有个问题。你能帮助我吗?谢谢
背景:
服务器A通过RESTTemplate与服务器B通信,服务器B通过socket与客户端C通信 整个过程基本上是这样的:C发起请求,去A,returns结果给C: C-->B-->A-->B-->C 还有以下业务 A-->B-->C-->B-->A
问题:
ABC是远程调用,中间总有一些意外(比如C发出请求,C挂了或者网络超时,C收不到消息,即C-->B-- >A-->B-->C),如何保证意外情况的发生,又能让业务闭环 有成熟的方案吗?
我的尝试:
我试过在B中保存状态,然后让C再次请求,根据情况决定继续哪一步,但是感觉这样做太麻烦了,不知道行不行还有其他计划
您可以将微服务与 Spring 结合使用以获得松散耦合的流程。 它可以执行大型复杂应用程序的持续交付。
您的用例是跨多个服务的业务交易中的常见问题,并且由于分布式性质,可能存在许多不受服务控制的故障场景,例如网络问题、延迟、意外故障。有几种技术,最常用的是 Compensating transaction by using Eventual consistency or Saga 模式