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

用Fargate在AWS ECS上部署Spring Cloud Zookeeper和Feign

仉峻
2023-03-14

当通过docker-compose作为docker映像部署在localhost上时,它都可以正常工作,但当作为单独的任务/服务部署到AWS ECS时(使用awsvpc),两者之间的通信不再工作,并且假客户机错误如下:

feign.FeignException$NotFound: [404 ] during [GET] to [http://my-api/api/workspace-context] [APIKeyService#getContextFromAPIKey(String)]: [<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} ... (431 bytes)]

注意,这里的响应有点像标准的Tomcat404响应。

我已经看到这个AWS部署在Zookeeper中存储的值,它似乎将IP地址作为address的值,我不确定这是否正确。

{
    "name": "my-api",
    "id": "323be0b7-8ad8-4061-846e-abcdac2bbbca",
    "address": "169.254.xxx.xxx",
    "port": 8080,
    "sslPort": null,
    ...

此IP地址既不匹配与ECS任务关联的ENI的公共IP也不匹配ENI的专用IP。

如果我手动用ENI的公共IP替换Zookeeper条目的address值,它将再次开始以核心方式工作(但不使用私有IP)。但显然,在新的部署后,它会再次被打破。

感谢任何帮助

共有1个答案

刘兴朝
2023-03-14

Spring Cloud猜测使用什么主机或IP地址。如果主机上设置了包含公共IP的env var,则可以使用它来设置地址

spring.cloud.zookeeper.discovery.instanceIpAddress=${MY_IP_ENV_VAR}

否则,根据文档,您可以将网络接口配置为忽略:

spring:
  cloud:
    inetutils:
      ignoredInterfaces:
        - docker0
        - ecs-eth0 #ecs private network
        - veth.*

或者选择哪个IP地址范围:

spring:
  cloud:
    inetutils:
      preferredNetworks:
        - 192.168
        - 10.0
 类似资料:
  • 我有个问题。我试图在WildFly服务器上部署一个应用程序。在尝试这样做时,我得到了一个错误,如下所示: 我搜索了一个解决方案,我找到了一个--我应该将jar添加到...但这无济于事!Wildfly正在尝试(当然没有任何努力)部署,但它失败了。然后我试图部署我的应用程序--同样的错误出现了:/ 干杯并感谢你事先给出的任何答案。

  • 当我试图在带有Jenkins和maven的weblogic 12c集群上重新部署EAR时,总是会出现以下错误: 我已经添加了

  • Python 2.7 64bit Django 1.3 WAMP 2.2(Apache 2.2.22)64位 mod_wsgi3.4 64位 Windows 7 64bit 由Django的start项目生成。位于默认 /myapp/myapp/wsgi.py 鉴于上述上下文,无法在WAMP上部署Django应用程序。 “Hello World”测试wsgi应用程序运行良好,因此我已确认mod_w

  • 我最近完成了我的第一个laravel站点,但现在我被部署卡住了。这对我来说是一个全新的概念。我的网络空间是由1 我尝试过几次教程,但似乎都不管用。基于此处的教程:将Laravel项目上载到Web服务器 我的服务器文件夹结构如下: (注意当第一次FTping我的服务器,没有www或html_docs,只有一个日志文件夹)。 在www上,我的索引。php更改为: 在laravel/引导/路径中。我更改

  • 我尝试在weblogic服务器上部署使用Spring apache cxf的应用程序。我一直收到这条错误消息: javax。servlet。ServletException:Servlet类:org。阿帕奇。cxf。运输servlet。CXFServlet’不实现javax。servlet。weblogic上的Servlet。servlet。内部的StubSecurityHelper$Servle

  • 当我试图将我的流星应用程序部署到Heroku时,它在引导时崩溃了。