部署在Docker容器中的两个微服务之间的通信

时间:2019-07-15 11:22:19

标签: spring spring-boot docker microservices

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

任何人都可以帮助我,以便微服务可以在docker容器内的localhost上进行通信。

1 个答案:

答案 0 :(得分:0)

您所需要的只是一个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