spring - 部署在 docker 容器中的两个微服务之间的通信
问题描述
两个微服务部署在一个容器内的 AWS 上。我有一个场景,我的微服务 A 必须与微服务 B 通信。但是当我尝试使用http://localhost:8082/url时,它不起作用。不幸的是,我不得不使用我的微服务的公共 url。由于使用公共 url 性能越来越慢。
任何人都可以帮助我,以便微服务能够在 docker 容器内的 localhost 上进行通信。
解决方案
你所需要的只是一个 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