【问题标题】:Docker Microservice Architecture - Communication between different containersDocker 微服务架构 - 不同容器之间的通信
【发布时间】:2018-06-26 01:22:35
【问题描述】:

我刚开始使用 docker,目前正在尝试研究如何使用微服务架构设置项目。

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

当前架构

所需架构

问题

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

【问题讨论】:

标签: azure docker microservices docker-container


【解决方案1】:

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

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

.

请看下图:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-15
    • 2020-08-22
    • 2020-01-15
    • 2019-11-24
    • 1970-01-01
    • 2019-01-26
    • 2016-06-10
    • 2019-05-19
    相关资源
    最近更新 更多