微服务与多个微服务相互通信

时间:2020-05-05 04:07:47

标签: java spring spring-boot microservices

微服务的新手,想尝试一下它,我知道它将会是一个大问题,但是请耐心等待。所以任何人都可以指导我采用最佳方法,

  • 如何通过的服务类方法与多个微服务(本例中为5个)进行交互/通信 另一个微服务。

  • 如果这些微服务之一宕机了怎么办?

  • 在这种情况下,事务管理如何工作?

  • 最后,如何组合所有这些响应并作为单个ResponseEntity<APIResponse>

  • 发回

感谢您阅读本文,请指导我。

谢谢...

1 个答案:

答案 0 :(得分:1)

这是一个很大的问题。答案可以写多本书。我会尝试在我的想法中列出一些内容,以便您从中受益。

  • 微服务之间的通信。
    • 同步方式。通过HTTP请求,RPC方法或SOAP。
    • 异步方式。事件采购,例如Kafka,RabbitMQ。数据库共享。
  • 如果这些微服务之一宕机了怎么办?
    • 这是您处理可用性的方式,大多数情况下,所有微服务都将具有多个实例。
    • 基于多个实例,您可以实施一些策略来帮助您控制灾难,例如断路器,重试,节流。
  • 在这种情况下,事务管理如何工作?
    • 您可以尝试使用分布式事务处理框架,但是它们似乎过于复杂。
    • 设计分布式系统中最常见的做法是CAP和最终一致性。检查Wiki
  • 如何将所有这些回复合并并作为单个发回
    • 这实际上取决于您如何设计API,您始终可以使用API​​网关方法,在一项服务中处理所有用于FE的逻辑。

关于该问题的内容很少,您可以在线阅读一些书籍或Google详细解决方案。