【问题标题】:Communication between two microservices deployed in docker container部署在 docker 容器中的两个微服务之间的通信
【发布时间】:2019-11-24 02:14:00
【问题描述】:

两个微服务部署在一个容器内的 AWS 上。我有一个场景,我的微服务 A 必须与微服务 B 通信。但是当我尝试使用http://localhost:8082/url 时,它不起作用。不幸的是,我不得不使用我的微服务的公共 url。由于使用公共 url 性能越来越慢。

谁能帮帮我,让微服务能够在 docker 容器内的 localhost 上进行通信。

【问题讨论】:

  • 请提供dockerfiledocker run这两个微服务的命令。
  • 如何在 AWS 中部署微服务?您使用哪种 AWS 服务?

标签: spring spring-boot docker microservices


【解决方案1】:

为此,您只需要一个 docker 网络。我已经使用 docker-compose 实现了这一点。在下面的示例中,我定义了一个网络后端,并且两个服务都属于它。在此之后,您的应用程序可以使用其服务名称 http://database:27017 访问您的数据库。

version: '3'

    networks:
      back-tier:

    services:
      database:
        build: ./Database
        networks:
          - back-tier
        ports:
          - "27017:27017"
      backend:
        build: ./Backend
        networks:
          - back-tier
        ports:
          - "8080:8080"
        depends_on:
          - database

【讨论】: