当前位置: 首页 > 知识库问答 >
问题:

Amazon ECS中两个微服务间无静态ip的Rest通信

尹正奇
2023-03-14

在这个问题中,我设法在docker-compose中使用用户定义的桥网络在两个微服务之间建立了REST通信

现在,当我在AWS上托管我的微服务时,我也在尝试这样做。我真的需要一些关于如何实现这一点的指针,因为我非常迷茫。

我的项目基础结构应该如下所示:

谢谢

共有1个答案

漆雕彬彬
2023-03-14

您可以为每个服务使用内部Loadbalancer,并为应用程序通信创建DNS记录、it以及ECS和服务发现特性,这些特性在此场景中非常有用。

 类似资料:
  • 尝试使用cloudformation创建ECS服务(在Fargate上),但出现错误: ARN中的服务无效(服务:AmazonECS;状态代码:400;错误代码:InvalidParameterException;请求ID:xxx)。 根据错误消息,似乎有些ARN是错误的,但我没有找到原因,我检查了IAM角色的ARN并确定了。其他ARN都通过了!Ref函数(因此不是输入错误) 创建所有资源(包括来

  • 我在微服务之间的通信上遇到了麻烦。我有许多spring boot应用程序,它们之间有许多请求HTTP和AMQP(RabbitMQ)。在本地(在dev中),我使用没有Docker图像的Eureka(Netflix Oss)。

  • 它现在是如何工作的: 微服务X用静态ip向微服务Y发出REST API请求 我试图通过在docker-compose中创建一个已使用的定义网络来实现这一点: 例如,我可以从容器X ping到容器Y,但不能Curl。我该如何解决这个问题,或者这不是实现我想要的最好的方法。

  • “在微服务之间添加的同步依赖关系越多,例如查询请求,客户端应用程序的总体响应时间就越差。 “这是真的吗?我认为在同步通信中,我们比异步通信更直接地得到反馈。例如,假设一个用户向微服务a发送http请求,微服务a又异步地向另一个微服务B发送请求,并异步地等待它的答复。如果微服务B关闭,那么用户将等待到超时才能得到响应,而在同步通信中,他将立即得到响应。

  • 假设我们有一个用户、Wallet REST微服务和一个将事情粘合在一起的API网关。当Bob在我们的网站注册时,我们的API网关需要通过用户微服务创建一个用户,通过钱包微服务创建一个钱包。 下面是一些可能出错的场景: > 用户Bob创建失败:没关系,我们只需向Bob返回一个错误消息。我们使用的是SQL事务,所以没有人在系统中看到Bob。一切都很好:) 创建了用户Bob,但在创建钱包之前,我们的AP