Docker微服务架构 - 不同容器之间的通信

时间:2018-01-17 08:16:40

标签: azure docker microservices docker-container

我刚刚开始使用docker,我正在尝试使用微服务架构来设计项目。

我的目标是从api中移出不同的服务,而不是将每个服务放在自己的容器中。

当前架构

enter image description here

所需的架构

To

问题

  1. API网关如何与内部服务通信?是否所有微服务都有自己的API,只接受来自API网关的通信?还有其他任何通讯方式吗?
  2. 网关和微服务之间的理想认证是什么? JWT令牌? Basic Auth?
  3. 如果在Azure中托管,您是否看到此架构存在任何问题?
  4. 在所需的架构中甚至可以进行集成测试吗?例如,我使用EF SQlite inmemory进行集成测试,并且可以在api中轻松访问,但如果数据库位于自己的容器中,我认为这不起作用。
  5. 我错过了什么重要的事情?

1 个答案:

答案 0 :(得分:0)

我创建的应用程序完全是在AWS ECS(容器服务)上运行的基于微服务的架构,每个微服务都作为Docker镜像推送到容器上。有两个EC2实例正在运行以实现高可用性,并且两个实例上都运行相同的mircoservices,因此如果一个实例发生故障,另一个实例可以处理请求。

每个微服务都使用自己的数据库,并且使用HTTP协议和发现上的客户端注册表进行微服务间通信,Spring Cloud Consul和Netflix Eureka可用于服务发现和注册。

enter image description here

请查看下图: